読者です 読者をやめる 読者になる 読者になる

103

今日のvim

vim programming

たぶんキリがないので続けない方がいいような気もしているが、何となく役立ちそうな気もするのでその後新たに行った設定を前回に続き書いておきたい。

  • インサートモード時にコントロール+kで、カーソル以降文末までをカット。

noremap! ld$a

「d$」の前に「l」を入れているのは、それがないとカーソルがある位置の一つ前の文字から消してしまうから、なんだけど、そのせいか文の左端にカーソルがあるときにこれをやると行頭1字が残ってしまう。基本的には文中にカーソルがあるときに使う処理であり、行頭ならESCしてddすればいいと思い上記のままだが、まあ気持ちよくはないのでいずれ直せれば直したい。
※追記:これについてはより良い方法をコメント欄で教えて頂きました。ありがとうございます!(追記ここまで)

  • 半角円記号を半角バックスラッシュに置換

これはいくら検索しても出てこなかったので自分で設定したが、出てこないということは僕の環境だけだろうか・・なぜかMacVimで半角バックスラッシュを打とうとすると円記号(Yみたいなやつ)になってしまい、MacVim以外ではターミナルでもGUIエディタでもなんでもバックスラッシュになるよう設定してあるのでそのように出てくるのだけど、MacVimでのみ半角バックスラッシュを出したければオプション押しながらじゃなきゃダメ、という状況だった。
最初は別にまあ、気にせず円記号を使っておけばいいか、と思っていたのだけど、ふと「たのしいRuby」のリストを写経していたら円記号では実行されなかったりして、そうなるとオプション押しながらが必須になるんだけどそれはどう考えても面倒すぎる。
ので以下のようにした。
#注:なぜかはてなダイアリーでは円記号とバックスラッシュを書き分けられなかったので(なぜ?)便宜的に円記号の方だけ全角にしてます。

inoremap ¥ \

  • タブ幅の調整

タブ幅がやけに深かったので、検索したら以下を発見。
http://vimblog.hatenablog.com/entry/vimrc_set_tab_indent_options
http://peacepipe.toshiville.com/2006/05/vimrc-vim.html
どうも世間の趨勢では、まずタブによる空白は半角スペースに置き換えるようにすべし、という風になっているようで、その上で2スペース分か4スペース分か、というemacs vs vimのインデント幅ヴァージョンみたいな二項対立があるようなんだけど、今勉強しつつあるRubyでは2個分が推奨のようなので2にした。

  • 別名でファイルを保存してそのままその新たなファイルで編集を続ける

今書いているファイルを別名で保存、と検索すると「:w」が出てくるのでそれを使っていたんだけど、それだとそうやって保存された別名ファイルっていうのはほんとにただ別に保存されるだけで、今開いてるファイルは別名で保存する前のまま継続されている状況になってしまう。
それはそれでたしかに「別名で保存」なのかもしれないが、いやいや普通は違うでしょ(笑)みたいな感じがあり、別名で保存した後は、やっぱり目の前で開いているそのファイルこそが別名で保存されたファイルになっていてもらわないと何というか感じが合わない。
で、そのように動作するコマンドはないものか、と思って検索したら以下があり、
http://archiva.jp/web/tool/vim_basic.html
「:f」として新たなファイル名を打ち込み継続すれば良いようだった。

  • ヴィジュアルモードからは「v」で抜ける

ESCキーの代わりにC-jを使えるようになって良かったのだが、どうもヴィジュアルモードからはそれで抜けられず、なんでだろう不便だな・・と思っていたが、タイプミスみたいな感じでvをもう一回押したら抜けられたのでなんだそれだけか・・と思った。たしかにこれはこれで楽である。
ちなみに矩形や行単位でのヴィジュアルモードに入っている場合は1度vを押すと通常の(文字単位の)ヴィジュアルモードに戻り、もう一回押せばノーマルモードへ戻れるっぽい。

大体そんなところ。