vim
いい加減どこに書いたのか忘れてその度に考えて作り直すのが面倒くさいのでメモ。 let list = split(str, '\%(\%(\%([^\\]\|^\)\%(\\\\\)*\)\@<=\\\)\@
autobackup.vim はありていに言うと効率化された savevers.vim です。 私の愛用していたプラグインに savevers.vim というのがありました。ファイルを更新する度に更新前のバージョンを通し番号を付けてバックアップしてくれる奴です。 ただ、このプラグイン…
シェルの補完に合わせて、Vim でも補完に複数の候補があったら、共通部分まで補完して候補を一覧するように設定を変更したが、補完候補がかなりたくさんある場合、画面がスクロールするあげく、スクロールさせすぎて意図せずスペースが入力されてしまう事故…
Vim のヘルプファイル編集時になぜか conceallevel が変更されていて気になったので調べたら、先日導入した Yggdroot/indentLine のせいだった。 このプラグインはインデントレベルを表示してくれるのだが、その代償として conceallevel を変更してしまうよ…
incsearch.vimに限らずだったんですが,どうしてもfeedkeys()を使わないと実装できないからfeedkeys()を使うんだけど特定の条件のときにインサートモードやコマンドラインモード時にfeedkeys()の処理が実行されて意図しない文字列がインサートされちゃう問題…
unite.vim や ctrlp.vim なんてなくても Vim には標準で、ある処理の結果を一覧してくれる機能があります。 それが QuickFixコマンド と QucikFixウィンドウ (& ロケーションリストウィンドウ) です。 しかし QuickFix の操作方法はわかりにくく使いづらい。…
久しぶりの投稿です。 なんか AdventCalendar に取っておこうと思ったら、いざそのときになると記事を書くのが怠くなってやらないパターンが多いので、 やはりこういう記事は公開した直後に書くのが一番なんだろうなって分かりました。 Vimのヘルプに A mark…
そう言えば、これから話すのは完全に私の好みの話なのでスルーしてもらっていいのですが、 この手のプラグインの場合、私は内部的には filetype 毎の設定というのは作らないで、バッファ毎の設定というのを作るような設計にすることが多いです で、filetype …
http://lingr.com/room/vim/archives/2014/12/02#message-20749443 は同じマッピングが既に定義されていたときには失敗するが、エラーメッセージを吐くので黙らせておく。 maparg()でマッピングの存在を調べて、定義されていなかったときのみマッピングする…
長い候補を入力するとプロンプト文字列が長くなってしまう コマンドライン系ツールの宿命と言うべき問題。長いパスを入力したら当然入力された文字列は長くなり、見た目も不格好になり、扱いも複雑になる。 長いファイルパスならともかく、ユーザが自由入力…
alti.vim は ctrlp.vim を参考にして作られたため、インターフェイスは ctrlp.vim に似ている。ctrlp.vim は複数の選択肢の中から1つを選んで開くためのインターフェイスであり、ファイルやバッファを絞り込んで開くという使い方をされる。この系統のプラグ…
thinca たしかに、それを考慮すると、setglobal 使った方がいいですね :help :setglobalバッファ/ウィンドウについてローカルなオプションに対して: コマンド グローバルな値 ローカルな値 ~ :set オプション=値 設定される 設定される :setlocal オプショ…
kamichidu: vimの文字列って、代入時にコピーされましたっけthinca: されます let や引数に渡す際にもコピーされます 苦しみのテクニックとして、巨大な文字列は配列に入れる、というのがありますkamichidu: 参照がコピーされるのは、関数参照と辞書、リスト…
コマンド補完関数の中でfeedkeys()が使えることが分かった。 ただし、feedkeys()のキー入力が開始されるのは補完が始まった後。 feedkeys()のキー入力によって補完は終了してしまう。ただし、オプション 'wildcharm' の値を変更することで feedkeys()から補…
これはNG (catchできない) try return has_key(s:, 'disable_str2vimkeybind') ? a:str : lim#str2vimkeybind#str2vimkeybind(a:str) catch /E117:/ let s:disable_str2vimkeybind = 1 return a:str endtry これならOK (catchできる) try let ret = has_…
拙作Vimプラグインの破壊的な変更を行いました。 LeafCage/foldCC.vim autoload/ を全て廃して plugin/ だけにしました。 そしてリポジトリ名を変更しました(foldCC → foldCC.vim) .vimが付きました。 LeafCage/yankround.vim ヒストリファイルを作るディ…
第1部 モード ほとんど復習だった。普段あまり使っていないコマンドラインモードについて以外は。 第2部 ファイル バッファリストを利用するというのはよい着想だ。 第3部 スピードアップ マークはほとんど利用していないのは何とかしたい。 第4部 レジ…
ヴィジュアルモードでもyankroundを使いたい · Issue #10 · LeafCage/yankround.vim xmap p <Plug>(yankround-p) xmap gp <Plug>(yankround-gp) 以上のようなマッピングを定義することで、ビジュアルモードでの p でビジュアル選択している部分と、レジスタの内容を置き</plug></plug>…
clever-f.vim 読書会にて thinca > > .のリピート対応 > 僕も分かっていないので,thinca さんに教えてもらえるとうれしい. えーと、これはthinca この場合の repeat ってのはそもそも motion のリピートで dfx とかしたときに . するとまた dfx みたいな動…
itchyny 関数がどのパッチで追加されたかってみんなどうやって調べてるんだろう. http://lingr.com/room/vim/archives/2014/01/10#message-18034846 manga_osyo わたしは version7.3 とかから 探してきているなー :help version7.3 http://lingr.com/room/vi…
この記事はVim Advent Calendar 2013 40日目の記事です。 statuslineをモダンに改造するプラグインの系譜 Lokaltog/vim-powerline / Lokaltog/powerline bling/vim-airline itchyny/lightline.vim そして第4の刺客として、t9md/vim-ezbar が登場しました。 …
@Linda_pp @kaoriya ワーイ。あと action__codic_word ではなくて action__text に設定すれば insert_codic_word ではなくて unite.vim のinsert アクションがそのまま流用できると思います。 https://twitter.com/osyo_memo/status/419499833653608448 uniteの…
LeafCage/yankround.vim :Unite yankround これでShougo/unite.vimでレジスタの履歴を閲覧できます。 出来ることはunite-source-history/yankとほぼ同じです。(参考にさせていただきました。Shougoさんありがとうございます。) kien/ctrlp.vimと比較すると…
LeafCage/yankround.vim let g:yankround_use_region_hl = 1 で有効になります。*1 有効にするとyankroundが有効な間、貼り付けたテキストがハイライトされるようになります。 <C-p> <C-n> で回したテキストもです。 g:yankround_region_hl_groupname でハイライトに使</c-n></c-p>…
colorschemeが先頭で:hl clearをしてくるので、カラースキーム以前に定義された:highlightは軒並み吹っ飛ばされるという問題。 結論を言うと、:highlightの定義はautocmd ColorScheme *でするか、使う直前その場でやるべき。 hl clear つけるのが流儀という…
一番最後のウィンドウで発動させるとこの現象は発生しない。 自分のウィンドウよりも後のウィンドウにのみ発生する模様。
実際に使った、役に立ったもの あるechoの表示で一時停止させてユーザに確認を促したい echo の直後で call getchar() する インプットメソッドを強制的にオフにしたい 'imdisable'で一時的にIMをオフにする。 let save_imd = &imd set imdisable let &imd =…
LeafCage/cmdlineplus.vim 提供している機能は、単語単位の移動、Emacsライクなキル、特定キャラクタのエスケープ、レジスタやクリップボードに現在のコマンドラインの内容をセットする、以上になります。
LeafCage/lastmess.vimについて メッセージの開始と、メッセージの中身の色を定義できるようにした g:lastmess_highlight_errstartとg:lastmess_highlight_errcontentsを指定することで、 エラーの開始点と内容が色分けされてこのようにエラーメッセージが見…
mattnjvgrepの問題、vimを直すしか方法ない vimがCreateProcessWを使えば解決 たしかパッチは出してあってtodoに入ってたと思う http://lingr.com/room/vim/archives/2013/12/05#message-17742024 とのことなので、それまでは我慢と工夫で乗り切るしかないの…