web-dev-qa-db-ja.com

viコマンドライン、行と列に移動

私は長い間、emacsvivim)の使用を混在させてきました。それぞれに利点があります。プロセスのようなコンパイルからのエラー出力を解析し、行と列の番号を取得しますが、emacsを使用して行と列に直接移動することしかできません。

emacs +15:25 myfile.xml

with vi行番号しかありません(manページによると)

vi +15 myfile.xml

カーソルをパターン(vi +/pattern myfile.xml)に移動するオプションがあります。しかし、パターンが常にファイル内で最初に現れるとは限らないので、それは私には役に立ちません。

どのようにしてviを開始すれば、ファイルの15行目の25列に移動できますか? -cオプションで何かできますか?

17
Dominique

以下を使用できます。

vi '+normal 15G25|'  myfile.xml
17
Christa

file-line plugin を使用すると、:editなどのコマンドでVimと内部を呼び出すときに、ファイル名に行と列を追加できます。

vim myfile.xml:15:25
7
Ingo Karkat

楽しみのためだけに-c 'normal 14j24l' 15行25文字目に移動します

5
hildred

-cオプションについてはわかりませんが、次のことができるはずです。

vi '+cal cursor(15,25)' myfile.xml

(かっこ()のため、必ず引用してください)

4
Anthon

注目に値する:

-c command 

起動時に指定されたexコマンドを実行します。 viには-cオプションを1つだけ使用できます; Vimは最大10を受け入れます。このオプションの古い形式である+command、まだサポートされています。

+commandは同じシングルex commandvi使用時の制限。

+/patternも、viを使用する1つのコマンドに制限されています。

vimおよびexエディター から取得)

2
Bee Kay

次のコードをvimrcに追加できます。ファイルに戻ったら、vimは自動的に古い位置に戻ります。

if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
1
PersianGulf