ariyasacca

カテゴリ一覧

Biz | SF | Software | tDiary | Web | ゲーム | サバティカル | スポーツ | ミステリ | メタル | 健康 | 投資 | 携帯 | 時事ネタ | 死生観 | 資格 | 雑記
2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|

2012-02-27 (月) [長年日記]

[Software]Vimのnmapとnnoremapの違い

自分の設定ファイルには、どこかで拾ったキーマップが沢山入っていて、ノーマルモード時の設定が、よく考えずにほとんどnmapで定義されていたのだけど、やっと違いを理解した。

「Vimテクニックバイブル」P.15より引用(強調は私です)。

  • mapはキーシーケンスを展開したあと、さらに別のマップを適用しようとします
  • noremapは一度だけ展開します

使い分けに迷った場合は、通常はnoremapを使い、プラグインが提供しているような<Plug>を含むキーシーケンスへマッピングする場合はmap系を使えばおおむね問題ないでしょう。

つまり、良くある「検索語句の位置を自動で画面の中心にする」というような場合は、nnoremapでは一度しか展開されず、その後の「zz」で中心に移動してもらえない。

よって、この場合はnmapでマッピングするのが正しい。

nmap n nzz
nmap N Nzz

再帰的なマッピングが無いと期待通りに動かないもの以外は全てnnoremapに定義し直した。

色々な基礎を理解せずにVimを使って来たことが次々と明らかになってきてヤバイ。

Vimテクニックバイブル ~作業効率をカイゼンする150の技(Vimサポーターズ)

2012-02-28追記

勘違いしてました、thincaさんからのツッコミにあるとおり、zzを本来の動きとは別の動作にマッピングしていない限り、nnoremapを使えば大丈夫でした。記事は元のままにしておきますが、ご注意下さい。

本日のツッコミ(全2件) [ツッコミを入れる]
thinca (2012-02-28 (火) 11:05)

>nmap n nzz<br>>nmap N Nzz<br><br>この場合は、zzに独自のマッピングをしていない限りはnnoremapで大丈夫です。<br>逆に、zzに独自のマッピングをしていて、それを使いたい場合はnmapを使う必要があります。

雷悶 (2012-02-28 (火) 21:25)

>thincaさん<br>コメントありがとうございます、指摘頂いたとおり、nnoremapでも大丈夫でした。<br><br>勘違いしていたことを記事にも追記しておきます。


最近のツッコミ

  1. 雷悶 (2022-08-11(木)17:40)「企業有利といわれる年と、学生有利といわれる年とで、どうしても格差は存在しますねー。通年採用をやってる会社も多少は増え..」
  2. gucho (2022-08-10(水)22:09)「金持ちいいなー。 新卒の時と、民主党が政権を取っていた時の転職活動は、採用している企業が明らかに少なかったので、こ..」
  3. 雷悶 (2022-08-08(月)19:01)「ブログに限らず、一般的なニュースサイトでも採用されちゃってますね。」

参号館  の中の  日記(ariyasacca)

トップ «前の日記(2012-02-26 (日)) 最新 次の日記(2012-03-01 (木))» 編集