Vimで「gf」から戻る方法


187

UnixモードでインストールされたVim for Windowsを使用しています。このサイトのおかげで、gfコマンドを使用してカーソルの下のファイルに移動します。

次のいずれかのコマンドを探しています。

  1. 前のファイルに戻る(ctagsのCtrl+ Tと同様)、または
  2. 再マップgf して、新しいウィンドウで新しいファイルを自動的に起動します。

回答:


294

私が使うCtrl-O


43
CTRL-Oはジャンプリストの古い位置に移動し、<Tab>またはCTRL-Iは新しい位置に移動します。
セバスチャンロッカセラ2008

4
@ g33kz0rニーモニックはO = OUT、I = IN => Ctrl-Oはあなたを連れ出し、Ctrlはあなたを連れてきます。すべてのジャンプがドアを通り抜けるようなものであれば、つまりです。
kronn

CTRL-Oは最後にアクセスした位置にジャンプします。これは、新しいファイルが検索されたときに迷惑です。Shift-Ctrl-6(私の場合はCtrl-6が機能しない)を好みます
Adriano


47

を使用CTRL-W gfして、新しいタブでファイルを開くことができます。

新しく開いたファイルは、いつものように:bd、またはCTRL-6バッファを変更するその他の通常の方法で閉じることができます。


7
私にとっては、バッファよりもタブの方が便利nnoremap gf <C-W>gfであり、新しいタブで開くのに使用した方がよい場合があります。
Searene 2013

13

gfを使用してファイルに降り、:bfを使用して戻ります


1
私は2つのウィンドウをタブで開いていて、前のバッファーにジャンプする代わりに、最初のウィンドウで2番目のウィンドウを開いただけです。
ケニーエビット2015

12

:e#続いて使用するだけですEnter-基本的に、最後の(最新の)ファイルを編集することを意味します。


9

Ctrl-Shift-6は1つです。

:e#↲ 別です。


8
シフトは必要ありません。指を乱用しないでください。
Zathrus 2008

6
ええと。ちょっと古いタイマーです。Ctrl-6は、私が何年も前に仕事で使用していたWyse端末のviでは動作しませんでした。ほら、いくつかはエッチングされたままです。そして、このコンボでシフトを使用しなくても、私の指の乱用全体に影響を与えることはほとんどありません。ねえ、少なくともあなたは最善を尽くしました。HTH。手。
tzot 2008


5

CTRL-W fで動作しました。
組み込みバージョンがあることを発見するためだけにこれらのコマンドのマップを完成させるのに長い時間を費やしてしまったことは非常に憂鬱です。


5

質問のパート2の答えはわかりませんが、パート1のお手伝いはできます。

:e#

Vimは編集中のファイル(バッファ)のリストを保持します。入力した場合

:buffers

現在編集中のすべてのファイルが一覧表示されます。そのリストの横に%が付いているファイルが現在のファイルです。横に#が付いているものが代替ファイルです。:e#は、現在のファイルと代替ファイルを切り替えます。それほど多く入力するのではなく、F2を:e#にマッピングして、現在のファイルと代替ファイルを簡単に切り替えられるようにします。これを.vimrcに追加して、コマンドをF2にマップします。

nmap `<F2> :e#<CR>`

2
:e#はファイルをリロードする可能性があるため、使用したくないと思います。:b#は、この問題なしで同等のことを行います。
lambacck 2011年

いい視点ね。リロードせずに他のバッファに切り替えます。
codebunny、2011


2

gfまたは:nまたは別のコマンドを使用して)新しいファイルを開くと、古いファイルはバッファーリストに残ります。:lsで開いているファイルを一覧表示できます

vimでバッファー間を簡単に移動したい場合は、次のようなマッピングを作成できます。

nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>

これで、Alt +左​​矢印またはAlt +右矢印でバッファーを切り替えることができます。

マッピングに関する完全なドキュメントはここにあります:

:help map.txt

0

私はあなたのgfコマンドを見ていませんが、:eまたは:findコマンドを使用していると思います
これが正しいと仮定すると、単に:eまたは:find:new(または垂直分割の場合は:vnew)に置き換えるだけで、ファイルは同じウィンドウではなく新しいウィンドウで開きます。

例えば

「ヘッダーとcppを切り替える
nmap、s:find%:t:r.cpp <CR>
nmap、S:new%:t:r.cpp <CR>
nmap、h:find%:t:rh <CR>
nmap、H:new%:t:rh <CR>
nmap、F:new = expand( "<cfile>:t")<CR> <CR>
nmap、d:new = expand( "<cfile>")<CR> <CR> 


2
gf組み込みです。それは私たち全員に属しています。:-)
jpaugh 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.