unite-vimpatches の内容を Vim で読みこむようにしてみた
以前作った unite-vimpatches ですが、ブラウザで開くのではなくて Vim で読みこむようなアクションを追加してみました。
次のように設定すれば Vim で内容を開くようになります。
call unite#custom#default_action("source/vimpatches/*", "openbuf")
バッファの生成周りあんまり理解してないのがつらい。
Vim で bash の reverse-i-search のようなことを行う
そんな話が Lingr の Vim 部屋で出ていたので。
" <C-r> で unite-history/command を起動 " 選択するとコマンドラインに選択したコマンドが挿入される " unite.vim と vim-unite-history が必要 cnoremap <C-r> :Unite history/command -start-insert -default-action=edit<CR>
上の設定を行ってからコマンドラインで
地味に便利そう?
コマンドラインで
Vim script でリストの範囲にリストを代入する
某 Lingr で話が出ていたので覚書。
let list = range(10) let list[3:6] = [-1, -2, -3, -4] echo list " => [0, 1, 2, -1, -2, -3, -4, 7, 8, 9]
" :help E711 *E711* *E719* :let {var-name}[{idx1}:{idx2}] = {expr1} *E708* *E709* *E710* リスト|List|の一部を式{expr}の値で置き換える。{expr}の 値は正しい個数の要素を持つリストでなければならない。 {idx1}を省略すると0となる。 {idx2}を省略するとリストの末尾となる。 指定された範囲の一部がリストの末尾を越える場合、要素が 追加される。
知らなかった。
Vim から現在開いているファイルをコミットする
ちょっと編集したファイルを毎回端末開いてコミットするのが手間だったので適当にラッパーコマンドを定義してみた。
" Commit {コミットメッセージ} command! -nargs=* Commit echo system("git commit " . expand("%:p") ." -m " . shellescape(<q-args>))
Commit {コミットメッセージ} で現在のファイルをコミットします。
さっとコミットしたい場合い便利。
Vim のシンタックスハイライトで他のシンタックスよりも優先してハイライトする
unite.vim のプロンプトの位置による違い
たまにハマる人がいるようなので簡単にまとめてみた。
- 候補順が逆
- マークした後に上にカーソルが移動する
- -auto-resize になる(候補の数によって自動的にウィンドウの高さが変わる)
また、下に split された場合は自動的にプロンプトが下に来ます。
プロンプトの位置は :Unite コマンドの -direction オプションで制御することができます。
" プロンプトを上に Unite -prompt-direction=top " プロンプトを下に Unite -prompt-direction=below
neosnippet.vim のマーカーを常に表示させる
この間の Vimプラグイン読書会で話に出ていたので覚書。
さて、neosnippet.vim のマーカー(カーソルのジャンプ先)は syntax の conceal によって制御されています。
conceal を使用することでユーザ側が表示・非表示の制御を 'conceallevel' にて行うことができます。
" マーカー(conceal)を非表示にする set conceallevel=3
[問題]
conceal が neosnippet.vim だけで使用されているのであれば問題ないのですが、他のプラグインでも使用されている場合に問題が出てきます。
例えば indetLine でも使用されており、このプラグインの性質上 conceal を非表示にして使用する必要があります。
そうすると neosnippet.vim のマーカーも非表示になってしまい、しばしば不便になります。
[解決]
常に表示させたいのであれば conceal を設定している syntax ごと無効にするのがよさそうです。
" 削除する適当なタイミングが思いつかなかったので… autocmd InsertLeave * syntax clear neosnippetConcealExpandSnippets
これで conceal が設定されている neosnippet.vim の syntax が削除され常に表示されるようになります。