私は長い間、emacs
とvi
(vim
)の使用を混在させてきました。それぞれに利点があります。プロセスのようなコンパイルからのエラー出力を解析し、行と列の番号を取得しますが、emacs
を使用して行と列に直接移動することしかできません。
emacs +15:25 myfile.xml
with vi
行番号しかありません(manページによると)
vi +15 myfile.xml
カーソルをパターン(vi +/pattern myfile.xml
)に移動するオプションがあります。しかし、パターンが常にファイル内で最初に現れるとは限らないので、それは私には役に立ちません。
どのようにしてvi
を開始すれば、ファイルの15行目の25列に移動できますか? -c
オプションで何かできますか?
以下を使用できます。
vi '+normal 15G25|' myfile.xml
file-line plugin を使用すると、:edit
などのコマンドでVimと内部を呼び出すときに、ファイル名に行と列を追加できます。
vim myfile.xml:15:25
楽しみのためだけに-c 'normal 14j24l'
15行25文字目に移動します
-c
オプションについてはわかりませんが、次のことができるはずです。
vi '+cal cursor(15,25)' myfile.xml
(かっこ()
のため、必ず引用してください)
注目に値する:
-c command
起動時に指定されたexコマンドを実行します。 viには-cオプションを1つだけ使用できます; Vimは最大10を受け入れます。このオプションの古い形式である+command
、まだサポートされています。
+command
は同じシングルex command
vi
使用時の制限。
+/pattern
も、vi
を使用する1つのコマンドに制限されています。
( vimおよびexエディター から取得)
次のコードをvimrcに追加できます。ファイルに戻ったら、vimは自動的に古い位置に戻ります。
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif