意外と知らなかったvimの使い方


意外と知らなかったvimの使い方

毎日何気なく触っているvimについて、暇な時間が出来たら何か便利機能がないか調べるようにしています。

今回は意外と知らなかった使い方を共有できればと思います。

.vimrc

pastetoggle

特に調べたソースコードをコピペするときに便利な設定です。

最近Rustをちゃんと触ってみようとしていて、チュートリアルの通りに作ってみる的なのをやっていたときにインデントが働いて死亡し、この問題を思い出しました。

:set paste, :set nopaste, :a!と色々有るけど結局トグルが使いやすいということで落ち着きました。

.vimrc

# F9押下でペーストモードを切り替える
set pastetoggle=<F9>

使い方はトグル(今回はF9)を押した上で貼り付けるだけです。

ちなみに知るまでは毎回:set pasteを入力していました。

カレントを自動で移動する

タブで開いたあとに:terminalしたときにそのタブのファイルのある場所で開けます。

NERDTreeやnetrwで色々開いたりしているとどのファイルがどこにあるやつか迷子になっていましたがこれにより解決できます。

.vimrc

## タブとかで開いたときにカレントも移動する
set autochdir

Tmuxで新しい画面を開いたり、移動し直したりしていたので気にしていませんでしたが、下記のコマンドの内容を反映させることができるのを知ってから気にするようになりました。

ちなみにこのように設定しても実現できますが、:termで出したウィンドウを移動するときに怒られるようになります。

autocmd BufEnter * lcd %:p:h

コマンドラインモード

コマンドの実行結果を入力する

(例) normal modeでV → : → ! → ls

:'<,'>!ls

こうすることでlsコマンドを実行したときの標準出力の内容が反映されます。

今までTerminal-NormalモードやTmuxのコピペを使用していましたがこちらのが楽ですね。

ちなみにTerminal-Normalモードは:termからCtrl + w → Nをすると一時停止してテキストとして扱えるモードです。

モードを終了するにはインサートモードに入る系のキーを押下すれば解除できます。(iとか)

長く使ってきたつもりでしたがまだまだ知らないことがたくさんあります。

やはり定期的に調べてみる時間を設けることはいいことですね。