Ini tidak berlaku lagi dan semua perubahan di masa depan akan dilakukan pada cabang harpoon2
.
Harpun 2
STATUS : Bergabung ke jalur utama 20 April atau 9 Juni (bagus)
-- gambar disediakan oleh Bob Rust
Ini belum matang sepenuhnya, meski digunakan oleh beberapa orang. Jika Anda mengalami masalah apa pun, lihat beberapa peningkatan yang menurut Anda luar biasa, atau sekadar mendapat masukan untuk harpun (atau saya), buatlah masalah!
:bnext
& :bprev
menjadi terlalu berulang, file alternatif tidak cukup, dll.vim-plug
dalam contoh ini) Plug ' nvim-lua/plenary.nvim ' " don't forget to add this one if you don't have it yet!
Plug ' ThePrimeagen/harpoon '
di sini kami akan menjelaskan cara menggunakan kekuatan tombak:
Anda menandai file yang ingin Anda kunjungi lagi nanti
: lua require ( " harpoon.mark " ). add_file ()
lihat semua tanda proyek dengan:
: lua require ( " harpoon.ui " ). toggle_quick_menu ()
Anda dapat naik dan turun daftar, memasukkan, menghapus, atau menyusun ulang. q
dan <ESC>
keluar dan simpan menu
Anda juga dapat beralih ke tanda apa pun tanpa membuka menu, gunakan yang di bawah ini dengan indeks tanda yang diinginkan
: lua require ( " harpoon.ui " ). nav_file ( 3 ) -- navigates to file 3
Anda juga dapat memutar daftar di kedua arah
: lua require ( " harpoon.ui " ). nav_next () -- navigates to next mark
: lua require ( " harpoon.ui " ). nav_prev () -- navigates to previous mark
dari menu cepat, buka file di: pemisahan vertikal dengan kontrol+v, pemisahan horizontal dengan kontrol+x, tab baru dengan kontrol+t
ini berfungsi seperti navigasi file kecuali jika tidak ada terminal pada indeks yang ditentukan, terminal baru akan dibuat.
lua require ( " harpoon.term " ). gotoTerminal ( 1 ) -- navigates to term 1
perintah dapat dikirim ke terminal mana pun
lua require ( " harpoon.term " ). sendCommand ( 1 , " ls -La " ) -- sends ls -La to tmux window 1
lebih jauh lagi, lebih banyak perintah dapat disimpan untuk nanti dengan cepat
lua require ( ' harpoon.cmd-ui ' ). toggle_quick_menu () -- shows the commands menu
lua require ( " harpoon.term " ). sendCommand ( 1 , 1 ) -- sends command 1 to term 1
tmux langsung didukung dan dapat digunakan sebagai pengganti terminal normal hanya dengan mengganti 'term' with 'tmux'
seperti itu
lua require ( " harpoon.tmux " ). gotoTerminal ( 1 ) -- goes to the first tmux window
lua require ( " harpoon.tmux " ). sendCommand ( 1 , " ls -La " ) -- sends ls -La to tmux window 1
lua require ( " harpoon.tmux " ). sendCommand ( 1 , 1 ) -- sends command 1 to tmux window 1
sendCommand
dan goToTerminal
juga menerima pengenal panel tmux yang valid.
lua require ( " harpoon.tmux " ). gotoTerminal ( " {down-of} " ) -- focus the pane directly below
lua require ( " harpoon.tmux " ). sendCommand ( " %3 " , " ls " ) -- send a command to the pane with id '%3'
Setelah Anda beralih ke jendela tmux Anda selalu dapat beralih kembali ke neovim, ini adalah skrip bash kecil yang akan beralih ke jendela yang menjalankan neovim.
Di tmux.conf
Anda (atau di mana pun Anda memiliki keybinds), tambahkan ini
bind-key -r G run-shell " path-to-harpoon/harpoon/scripts/tmux/switch-back-to-nvim "
Daftarkan harpun pertama sebagai perpanjangan teleskop
require ( " telescope " ). load_extension ( ' harpoon ' )
saat ini hanya tanda yang didukung di teleskop
:Telescope harpoon marks
jika ingin mengkonfigurasi harpoon, hal itu harus dilakukan melalui fungsi pengaturan harpoon
require ( " harpoon " ). setup ({ ... })
berikut adalah semua pengaturan global yang tersedia dengan nilai defaultnya
global_settings = {
-- sets the marks upon calling `toggle` on the ui, instead of require `:w`.
save_on_toggle = false ,
-- saves the harpoon file upon every change. disabling is unrecommended.
save_on_change = true ,
-- sets harpoon to run the command immediately as it's passed to the terminal when calling `sendCommand`.
enter_on_sendcmd = false ,
-- closes any tmux windows harpoon that harpoon creates when you close Neovim.
tmux_autoclose_windows = false ,
-- filetypes that you want to prevent from adding to the harpoon list menu.
excluded_filetypes = { " harpoon " },
-- set marks specific to each git branch inside git repository
mark_branch = false ,
-- enable tabline with harpoon marks
tabline = false ,
tabline_prefix = " " ,
tabline_suffix = " " ,
}
untuk melakukan prakonfigurasi perintah terminal untuk digunakan nanti
projects = {
-- Yes $HOME works
[ " $HOME/personal/vim-with-me/server " ] = {
term = {
cmds = {
" ./env && npx ts-node src/index.ts "
}
}
}
}
harpoon.log
dalam jalur cache nvim ( :echo stdpath("cache")
)trace
, debug
, info
, warn
, error
, atau fatal
. warn
adalah defaultvim.g.harpoon_log_level
(harus sebelum setup()
)HARPOON_LOG=debug nvim
lebih diutamakan daripada vim.g.harpoon_log_level
.warn
. keduanya memiliki tujuan yang sama namun tanda tombak berbeda dalam beberapa hal utama:
Terkadang lebar default 60
tidak cukup lebar. Contoh berikut menunjukkan cara mengonfigurasi lebar khusus dengan mengatur lebar menu relatif terhadap lebar jendela saat ini.
require ( " harpoon " ). setup ({
menu = {
width = vim . api . nvim_win_get_width ( 0 ) - 4 ,
}
})
Secara default, tabline akan menggunakan tema default tema Anda. Anda dapat menyesuaikan dengan mengedit sorotan berikut:
Contoh untuk membuatnya lebih bersih:
vim . cmd ( ' highlight! HarpoonInactive guibg=NONE guifg=#63698c ' )
vim . cmd ( ' highlight! HarpoonActive guibg=NONE guifg=white ' )
vim . cmd ( ' highlight! HarpoonNumberActive guibg=NONE guifg=#7aa2f7 ' )
vim . cmd ( ' highlight! HarpoonNumberInactive guibg=NONE guifg=#7aa2f7 ' )
vim . cmd ( ' highlight! TabLineFill guibg=NONE guifg=white ' )
Hasil:
Untuk pertanyaan tentang Harpoon, ada saluran #harpoon di server Discord Primeagen.