ファイルを開くときにviが訪問した最後の行に移動しないように無効にする

ファイルを開くときにviが訪問した最後の行に移動しないように無効にする

ファイルが最後に開かれたときに最後の行に移動するのをexrc防ぎ、デフォルトでカーソルを一番上に設定する項目をファイルに配置できますか?vi

ディストリビューションによって違うと思います。 Solarisでは動作が異なりますが、RHELでは動作しません。

答え1

この機能は自動コマンドで実装されます。これは設定されています。以下のコードスニペットを参照してください/etc/vimrc。そこから削除するか、vimrc ファイルからその自動コマンドを削除するコマンドを追加します。 (私はFedoraを使用しています。rhelでは非常に似ています。)

if has("autocmd")
  augroup fedora
  autocmd!
  "...
  " When editing a file, always jump to the last cursor position
  autocmd BufReadPost *
  \ if line("'\"") > 0 && line ("'\"") <= line("$") |
  \   exe "normal! g'\"" |
  \ endif
  "...
  augroup END
endif

権限がない場合、または変更を望まない場合、この場合、自動コマンドをローカルに削除するコマンドは /etc/vimrc次のとおりです。.vimrc:au! <group> <cmdname>:au! fedora BufReadPost

答え2

これは実際の答えよりもコメントに近いです。 SolarisはLinuxディストリビューションではありません。 Unixオペレーティングシステムの1つのバージョンです。 RedHatのviは、vimにシンボリックにリンクされたLinuxディストリビューション(Linux!= Unix)です。 Solaris viは、Bill Joyによって作成された本物のviエディタを表します。したがって、私たちはここで同じ編集者について話しているわけではありません。もともとviの別のレプリカであるOpenBSDシステムでnviを使用しているので、vimがどのように機能するのかわかりません。インストールすることをお勧めします。viエディタまず、RedHatシステムで問題を再現してみてください。入力するとvi filename.txt ファイルが開き、最初の行の先頭にプロンプ​​トが表示されます。入力すると、vi + filename.txt最後の行のファイルが開きます。ただし、viは、読み取り専用モードでvi +n filename.txtn行目の先頭に置いたり、正規表現vi +/regexp filename.txt(regexp)が最初に表示される行の先頭に置くなど、さまざまなオプションを使用して開くことができます。view filename.txt完全なリストについては、マニュアルページを参照してください。実際のバージョンをインストールするときは、vimからviコマンドを切断することを忘れないでください。

答え3

この目的に使用できる他のオプションがありますが、次の回避策を使用できます。

vim <filename> +1

+1つまり、カーソルをライン1に移動します。

答え4

私は反対の問題があり、ここで終わりました。カーソルがファイルの先頭に戻るのはなぜですか?私はバッファ間を切り替え、毎回私の場所を見つける必要があることに慣れています。これはまったく効率的ではありません!

ここにある回答のうち、この質問に対する言及がないので、問題を解決するために私の回答を追加する必要があると思いました。私がしなければならなかったのは、最初の行のスペースの後にCまたはC ++コメントを追加することだけでした!これが機能なのかバグなのかはわかりませんが... この場合はカーソルが一番上に戻ります。

+---- see the space here?
|
v
 // first line of file

コメントやスペースを削除してください。私の問題を解決しました

関連情報