ホームページ >バックエンド開発 >Golang >vim golang 自動ジャンプ

vim golang 自動ジャンプ

王林
王林オリジナル
2023-05-14 16:31:071043ブラウズ

Vim を使用して Go コードを編集する場合、関数または変数の定義にジャンプする必要がある状況によく遭遇します。 Vim では、これを実現するためにいくつかのプラグインやトリックを使用できますが、この記事ではその方法の 1 つである、gutentags と vim-go を使用して自動ジャンプを実現する方法を紹介します。

1.gutentags をインストールする

gutentags はタグ ファイルの生成に使用される Vim プラグインで、コードをすばやく参照し、ファイル内の変数や関数の定義を見つけるのに役立ちます。 Gutentag をまだインストールしていない場合は、次のコマンドを使用してインストールできます。

//Vundle
Plugin 'ludovicchabant/vim-gutentags'

//NeoBundle
NeoBundle 'ludovicchabant/vim-gutentags'

//vim-plug
Plug 'ludovicchabant/vim-gutentags'

インストールが完了したら、Vim で「:help Gutentags」を実行して、gutentag の使用手順を表示します。

2. vim-go のインストール

vim-go は Go 言語開発者向けに設計された Vim プラグインで、Go 言語プログラムの迅速な作成、デバッグ、テストに役立ちます。 vim-go をインストールしていない場合は、次のコマンドを使用してインストールできます:

//Vundle
Plugin 'fatih/vim-go'

//NeoBundle
NeoBundle 'fatih/vim-go'

//vim-plug
Plug 'fatih/vim-go'

インストールが完了したら、Vim で「:help go」を実行して、vim-go の使用手順を表示します。

3.gutentags と vim-go の設定

gutentags と vim-go をインストールした後、それらが連携して自動ジャンプ機能を実現できるように設定する必要があります。

    #gutentags の構成
次の構成を .vimrc ファイルに追加します:

let g:gutentags_project_root = ['.git', '.svn', '.hg']
let g:gutentags_cache_dir = '~/.vim/tags'
let g:gutentags_file_list_command = 'git ls-files'
let g:gutentags_generate_on_write = 1

これらの構成項目の意味は次のとおりです:

    g:gutentags_project_root: プロジェクトのルート ディレクトリを指定します。タグ ファイルの検索はプロジェクトのルート ディレクトリとそのサブディレクトリで実行されます。
  • g:gutentags_cache_dir: タグファイルの保存パスを指定します。 Gutentags は生成されたタグ ファイルをキャッシュするため、次回同じファイルまたは変数を検索するときにタグ ファイルを再度生成する必要はありません。
  • g:gutentags_file_list_command: 現在のプロジェクト内のファイルを一覧表示する方法を指定します。ここでは git ls-files コマンドを使用してファイルリストを取得しましたが、他のコマンドも使用できます。
  • g:gutentags_generate_on_write: ファイル保存時にタグファイルを自動生成するかどうかを指定します。
    vim-go の構成
次の構成を .vimrc ファイルに追加します:

let g:go_def_mode='gopls'
let g:go_auto_sameids = 1
let g:go_list_type = "quickfix"
let g:go_list_autowin = 1
let g:go_fmt_command = "goimports"
let g:go_complete_unimported = 1
let g:go_def_mapping_enabled = 0

これらの構成項目の意味は次のとおりです。

    g:go_def_mode: 定義ジャンプのバックエンドとして gopls の使用を指定します。これは Go 言語によって公式に提供される言語サーバーです。
  • g:go_auto_sameids: 同じファイル内の別の関数または変数定義にジャンプするときに、タグ ファイルを自動的に更新するかどうかを指定します。
  • g:go_list_type: クイックフィックス ウィンドウを使用して関連情報を表示するように指定します。
  • g:go_list_autowin: クイックフィックス ウィンドウを開いたときに最初のエラー項目に自動的にジャンプするかどうかを指定します。
  • g:go_fmt_command: コードをフォーマットするための goimports の使用を指定します。
  • g:go_complete_unimported: 未インポートのパッケージを補完に含めるかどうかを指定します。
  • g:go_def_mapping_enabled: GoDef コマンドのショートカット キー マッピングを有効にするかどうかを指定します。
4. 自動ジャンプの実装

gutentags と vim-go を設定した後、Vim で Go ファイルを開き、カーソルを関数または変数に移動して、 「gd」ショートカットキーを押すと、定義位置に自動的にジャンプします。

自動ジャンプ処理中に、gutentags はタグ ファイルを自動的に生成します。ファイルが既に存在する場合は、それが直接使用されます。同じファイル内の別の関数または変数定義にジャンプすると、vim-go はタグ ファイルを自動的に更新して、次のジャンプで定義の場所を正確に特定できるようにします。上記の方法を使用すると、記述効率が大幅に向上し、コード内の変数や関数の定義をすばやく参照して見つけることができます。

以上がvim golang 自動ジャンプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。