Rumah  >  Artikel  >  pembangunan bahagian belakang  >  lompat automatik vim golang

lompat automatik vim golang

王林
王林asal
2023-05-14 16:31:07979semak imbas

Apabila menggunakan Vim untuk mengedit kod Go, kita sering menghadapi situasi di mana kita perlu beralih ke fungsi atau definisi berubah. Dalam Vim, kita boleh menggunakan beberapa pemalam atau helah untuk mencapai ini. Artikel ini akan memperkenalkan salah satu kaedah - menggunakan gutentags dan vim-go untuk mencapai lompatan automatik.

1. Pasang gutentags

gutenttags ialah pemalam Vim untuk menjana fail tag, yang boleh membantu kami menyemak imbas kod dengan cepat dan mencari definisi pembolehubah dan fungsi dalam fail. Jika anda belum memasang gutenttags, anda boleh menggunakan arahan berikut untuk memasangnya:

//Vundle
Plugin 'ludovicchabant/vim-gutentags'

//NeoBundle
NeoBundle 'ludovicchabant/vim-gutentags'

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

Selepas pemasangan selesai, laksanakan ":help gutenttags" dalam Vim untuk melihat arahan untuk menggunakan gutentags.

2. Pasang vim-go

vim-go ialah pemalam Vim yang direka untuk pembangun bahasa Go, yang boleh membantu kami menulis, nyahpepijat dan menguji program bahasa Go dengan cepat. Jika anda belum memasang vim-go, anda boleh menggunakan arahan berikut untuk memasangnya:

//Vundle
Plugin 'fatih/vim-go'

//NeoBundle
NeoBundle 'fatih/vim-go'

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

Selepas pemasangan selesai, laksanakan ":help go" dalam Vim untuk melihat arahan menggunakan vim-go.

3. Konfigurasikan gutentags dan vim-go

Selepas memasang gutentags dan vim-go, kita perlu mengkonfigurasinya supaya ia boleh bekerjasama dan merealisasikan fungsi lompat automatik.

  1. Konfigurasikan gutentag

Tambah konfigurasi berikut dalam fail .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

Maksud item konfigurasi ini ialah:

  • g:gutentags_project_root: Tentukan direktori akar projek Pencarian fail teg akan dilakukan dalam direktori akar projek dan subdirektorinya.
  • g:gutentags_cache_dir: Tentukan laluan menyimpan fail tag. gutentags akan cache fail tag yang dijana, jadi anda tidak perlu menjana fail tag lagi pada kali seterusnya anda mencari fail atau pembolehubah yang sama.
  • g:gutentags_file_list_command: Tentukan cara menyenaraikan fail dalam projek semasa. Di sini kami menggunakan perintah git ls-files untuk mendapatkan senarai fail, tetapi arahan lain juga boleh digunakan.
  • g:gutentags_generate_on_write: Tentukan sama ada hendak menjana fail tag secara automatik semasa menyimpan fail.
  1. Konfigurasikan vim-go

Tambah konfigurasi berikut dalam fail .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

Maksud item konfigurasi ini ialah:

  • g:go_def_mode: Menentukan penggunaan gopls sebagai hujung belakang untuk lompat definisi, iaitu pelayan bahasa yang disediakan secara rasmi oleh bahasa Go.
  • g:go_auto_sameids: Tentukan sama ada untuk mengemas kini fail tag secara automatik apabila melompat ke fungsi berbeza atau takrifan berubah dalam fail yang sama.
  • g:go_list_type: Tentukan menggunakan tetingkap quickfix untuk memaparkan maklumat berkaitan.
  • g:go_list_autowin: Tentukan sama ada hendak melompat ke item ralat pertama secara automatik apabila membuka tetingkap pembaikan pantas.
  • g:go_fmt_command: Tentukan penggunaan goimports untuk memformat kod.
  • g:go_complete_unimported: Menentukan sama ada untuk memasukkan pakej yang tidak diimport untuk selesai.
  • g:go_def_mapping_enabled: Menentukan sama ada untuk mendayakan pemetaan kekunci pintasan untuk arahan GoDef.

4. Laksanakan lompat automatik

Selepas mengkonfigurasi gutentags dan vim-go, kami boleh membuka mana-mana fail Go dalam Vim dan mengalihkan kursor ke fungsi atau pada pembolehubah, dan kemudian tekan kekunci pintasan "gd" untuk melompat ke kedudukan definisi secara automatik.

Semasa proses lompat automatik, gutentag akan menjana fail tag secara automatik Jika fail itu sudah wujud, ia akan digunakan terus. Apabila melompat ke fungsi yang berbeza atau definisi berubah dalam fail yang sama, vim-go akan mengemas kini fail tag secara automatik untuk memastikan lompatan seterusnya dapat mengesan lokasi definisi dengan tepat. Menggunakan kaedah di atas boleh meningkatkan kecekapan penulisan kami dengan baik dan menyemak imbas serta mencari definisi pembolehubah dan fungsi dalam kod dengan cepat.

Atas ialah kandungan terperinci lompat automatik vim golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:golang ubah suai jenis hirisanArtikel seterusnya:golang ubah suai jenis hirisan