← Vim研究所

カーソル下のパスをそのまま開く(gf)と分割・タブでの開き方

2020-01-29 公開 ・ 更新: 2026-08-05

コード中に書かれたimport文のパスを、コピーしてExコマンドとして貼り付けて開く、という作業を繰り返していました。カーソルを乗せるだけでそのパスを開けるコマンドがあり、これを覚えるとファイル間の移動がずっと楽になります。

目次(6項目)
キーこれだけ覚える
gfカーソル位置のパスをそのまま開く
Ctrl-w f水平分割した新規ウィンドウで開く
Ctrl-w gf新規タブで開く

基本の使い方

gf

「Go to File」の略で、カーソルの下または後ろにあるファイルパスをカレントウィンドウで開きます。パスがディレクトリであれば、netrwや設定しているファイラーがそこを起点に開きます。

BEFORE
import "./utils/format.js"
console.log(1)
gf
AFTER
export function format() {}

分割・タブで開くバリエーション

キー動作
Ctrl-w f水平分割した新規ウィンドウで開く
:vertical wincmd f垂直分割した新規ウィンドウで開く
Ctrl-w gf新規タブで開く

:vertical wincmd fは打鍵数が多いので、頻繁に使うなら好きなキーにマッピングしておくと便利です。

nnoremap <Leader>gf :vertical wincmd f<CR>

関連するオプション

オプション役割
pathカレントディレクトリ以外に検索対象とするディレクトリ一覧
suffixesadd拡張子を省略したパスに自動で補う拡張子
isfnameファイル名とみなす文字の種類

suffixesaddを設定しておくと、import fooのように拡張子が省略されたパスでもgfで開けるようになります。言語ごとに拡張子が異なるので、プロジェクトの言語に合わせて設定しておくと快適さが変わります。

set suffixesadd=.js,.ts,.py

ビジュアルモードでも使える

ビジュアル選択した範囲をファイルパスとして開きたい場合もgfが使えます。パスの一部だけをカーソルが指しているために誤ったファイル名として解釈されてしまうときに、範囲を選択してからgfを実行すると、その選択範囲そのものをパスとして扱ってくれます。空白を含むパスなど、通常の判定ではうまく認識されない場合の保険として覚えておくと安心です。

使いどころ

C言語の#include、Pythonのimport、HTMLのhref/src属性など、ファイルパスが登場する場面全般で活用できます。ターミナルモードで検索結果からパスを表示させ、そこにカーソルを合わせてgfで開く、という使い方もできます。ファイルを探すこと自体が目的なら:findコマンドのほうが向いています。

要点:パスが分かっている場所からすぐ移動したいならgfsuffixesaddを設定しておくと拡張子省略のパスにも対応でき、実用度が上がります。
使ってみて

TypeScriptのimport文を目で追ってファイルを探す作業が多かったのですが、suffixesadd.tsを追加してからgfが拡張子なしのパスでも一発で開けるようになり、コードジャンプの手間がかなり減りました。分割で開きたいときのCtrl-w fも、慣れると無意識に指が動くようになります。

まとめ

gfはパスが書かれた場所からファイルへ直接移動できる便利なコマンドです。suffixesaddなどの関連オプションを設定しておくと、より多くの場面で使えるようになります。カーソル下がディレクトリのパスだった場合は、ファイルの代わりにnetrwの一覧が開きます。設定ファイルに書かれたディレクトリを確認したいときはこちらのほうが早く、開いた先ではそのまま目的のファイルを分割やタブで開けます。ディレクトリが開いたあとは通常のnetrwなので、一覧の表示形式を変えて目的のファイルを探すこともできます。

← Vim研究所 トップへ戻る