tips

vimで現在編集中のバッファのファイル名を変更する

以下を .vimrcに追加します。 command! -nargs=+ -bang -complete=file Rename let pbnr=fnamemodify(bufname('%'), ':p')|exec 'f '.escape(<q-args>, ' ')|w<bang>|call delete(pbnr) 変更したいファイル名を指定して実行します。 :Rename newfilename!を付けると強制保</bang></q-args>…

vimで内容が空のファイルを保存したら自動で削除する

vim/gvimで開いたファイルを削除したい時があります。 :Explore や shellコマンドでも良いのですが、単純にファイルの中身を全削除して保存したらファイル自体も削除するように設定しています。 以下を .vimrcに追加します。 augroup BUFWRITE_POSTDELETE au…

vimで階層付きテキストをアウトラインプロセッサ風に表示する

行頭の . の数で階層を示す、いわゆる「階層付きテキスト」を vim/gvimで閲覧する時に折りたたみを使用するとアウトラインモードっぽく閲覧できて結構便利です。 .vimrcに以下を追加してやると txtファイルで行頭に . や * = がある行の間を折りたたみます。…

Linuxのgvimで日本語入力を使いやすくする

vimで日本語入力する時に一番問題になるのはIMの切替です。 とくにLiunxの場合アプリケーションからの入力モード変更が出来ないIMもあり、vimの挿入モードで日本語入力のためにIMをONにしてから でノーマルモードに戻ると、IMがOFFにならないので切替が面倒…

vimで縦に連番を入力する

vim/gvimで縦に連続した番号へ置換したいときがあります。 fuga[0] fuga[0] fuga[0] これを次のように変更したりする場合です。 fuga[0] fuga[1] fuga[2] 適当なのが見あたらなかったので、適当に作ってみたものを使用しています。 .vimrc(_vimrc) に追加し…

vimの「最後に編集した」関係のコマンド

編集作業しているとき、最後の編集位置というのはかなり重要度が高いのではないかと思います。 vimには gi `[ `` `自分としては最後に内容変更したカーソル位置へジャンプする `. と、編集位置をさかのぼる g; をメインに使用と言うあたりで落ち着きました。…

vimのキー入力で自動補完

vim/gvim用の最低限のオプションのみの自動補完です。 キー入力する度に補完候補を表示します。 デフォルトでは挿入モードにはいるとsmartcaseが解除され、挿入モードを抜けるとsmartcaseが設定されます。 自分的に補完時は大文字小文字を気にしたくないから…

Windowsのgvimで日本語入力を使いやすくする

vim/gvimでは日本語が使いにくいと言われます。 しかし挿入モードのみで扱っている場合、違いが出るわけではありません。 簡単な移動や編集はカスタマイズして一通りのことは出来ます。(Emacs風なカスタマイズ例) ただしノーマルモードと挿入モードを頻繁に…

vimで n. を回数指定して実行する

ここからちょっと怪しくなります。 let @n='n.' これを .vimrc か、コマンドモードから定義してやると、 @n コマンドが回数指定可能な n. になります。 n は好きなレジスタでかまいません。 「カーソル位置の単語とヤンクした文字列を置換する」の cy の後な…

vimでカーソル位置の単語とヤンクした文字列を置換する

個人的によくやるのがこれです。 nnoremap <silent> ciy ciw<C-r>0<ESC>:let@/=@1<CR>:noh<CR> nnoremap <silent> cy ce<C-r>0<ESC>:let@/=@1<CR>:noh<CR> vnoremap <silent> cy c<C-r>0<ESC>:let@/=@1<CR>:noh<CR> 置換に使いたい文字列をヤンクしておきます。 置換したい単語まで移動します。 cyかciyを実行します。 カーソル位置の単語が</cr></cr></esc></c-r></silent></cr></cr></esc></c-r></silent></cr></cr></esc></c-r></silent>…

vimの検索 * # を使いやすくする

検索で # を使っていますか? 私は使っていません。 n N で繰り返す時、逆になって面倒くさいからです。 vimのヘルプかなんかで、方向を変えたいときには n N ではなく # と * で切り替えると便利とありました。 # は左の中指で押す、 * は右の中指で押す、…

vimのヤンク履歴とヒストリ貼り付け

どうしてもエディタに欲しい機能というのは人によって違うと思います。 自分的にはヒストリ貼り付けがその一つです。 「3行目と5行目と12-14行目をコピーして、20行目にコピーした順番通り貼り付ける」とか。 vimだとヤンクした履歴は残りませんが、削除履歴…