이는 더 이상 사용되지 않으며 향후 모든 변경 사항은 harpoon2
분기에 적용됩니다.
하푼 2
상태 : 4월 20일 또는 6월 9일에 메인라인에 합류(좋음)
-- Bob Rust 가 제공한 이미지
여러 사람이 사용하지만 완전히 구워지지는 않았습니다. 문제가 발생하면 놀라운 개선 사항을 확인하거나 Harpoon(또는 저)에 대한 피드백이 있으면 문제를 만들어주세요!
:bnext
및 :bprev
가 너무 반복되고 대체 파일이 잘리지 않는 등의 문제가 발생했습니다.vim-plug
). Plug ' nvim-lua/plenary.nvim ' " don't forget to add this one if you don't have it yet!
Plug ' ThePrimeagen/harpoon '
작살의 힘을 휘두르는 방법은 다음과 같습니다.
나중에 다시 방문하고 싶은 파일을 표시합니다.
: lua require ( " harpoon.mark " ). add_file ()
다음을 사용하여 모든 프로젝트 표시를 봅니다.
: lua require ( " harpoon.ui " ). toggle_quick_menu ()
목록을 위아래로 이동하고, 입력, 삭제 또는 재정렬할 수 있습니다. q
및 <ESC>
종료 및 메뉴 저장
메뉴를 불러오지 않고도 원하는 마크로 전환할 수도 있습니다. 원하는 마크 인덱스와 함께 아래를 사용하세요.
: lua require ( " harpoon.ui " ). nav_file ( 3 ) -- navigates to file 3
목록을 양방향으로 순환할 수도 있습니다.
: lua require ( " harpoon.ui " ). nav_next () -- navigates to next mark
: lua require ( " harpoon.ui " ). nav_prev () -- navigates to previous mark
빠른 메뉴에서 파일 열기: Ctrl+V로 세로 분할, Ctrl+x로 가로 분할, Ctrl+T로 새 탭
이는 지정된 인덱스에 터미널이 없는 경우 새 터미널이 생성된다는 점을 제외하면 파일 탐색과 유사하게 작동합니다.
lua require ( " harpoon.term " ). gotoTerminal ( 1 ) -- navigates to term 1
모든 터미널로 명령을 보낼 수 있습니다
lua require ( " harpoon.term " ). sendCommand ( 1 , " ls -La " ) -- sends ls -La to tmux window 1
나중에 빠르게 사용할 수 있도록 더 많은 명령을 저장할 수 있습니다.
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는 기본적으로 지원되며 'term' with 'tmux'
간단히 전환하여 일반 터미널에 대한 드롭인 대체품으로 사용할 수 있습니다.
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
및 goToTerminal
유효한 tmux 창 식별자도 허용합니다.
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'
tmux 창으로 전환하면 언제든지 neovim으로 다시 전환할 수 있습니다. 이것은 neovim을 실행하는 창으로 전환하는 작은 bash 스크립트입니다.
tmux.conf
(또는 키바인드가 있는 곳)에 다음을 추가하세요.
bind-key -r G run-shell " path-to-harpoon/harpoon/scripts/tmux/switch-back-to-nvim "
1. 망원경 확장으로 작살 등록
require ( " telescope " ). load_extension ( ' harpoon ' )
현재 망원경에서는 마크만 지원됩니다.
:Telescope harpoon marks
작살을 구성하려면 작살 설정 기능을 통해 수행해야 합니다.
require ( " harpoon " ). setup ({ ... })
기본값과 함께 사용 가능한 모든 전역 설정은 다음과 같습니다.
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 = " " ,
}
나중에 사용하기 위해 터미널 명령을 미리 구성하려면
projects = {
-- Yes $HOME works
[ " $HOME/personal/vim-with-me/server " ] = {
term = {
cmds = {
" ./env && npx ts-node src/index.ts "
}
}
}
}
:echo stdpath("cache")
) 내의 harpoon.log
에 기록됩니다.trace
, debug
, info
, warn
, error
또는 fatal
입니다. warn
기본값입니다vim.g.harpoon_log_level
로 설정할 수 있습니다( setup()
이전 이어야 함)HARPOON_LOG=debug nvim
vim.g.harpoon_log_level
보다 우선 적용됩니다.warn
으로 돌아갑니다. 작살 표시는 비슷한 목적으로 사용되지만 몇 가지 주요 측면에서 다릅니다.
때로는 기본 너비인 60
충분히 넓지 않은 경우도 있습니다. 다음 예에서는 현재 창 너비를 기준으로 메뉴 너비를 설정하여 사용자 정의 너비를 구성하는 방법을 보여줍니다.
require ( " harpoon " ). setup ({
menu = {
width = vim . api . nvim_win_get_width ( 0 ) - 4 ,
}
})
기본적으로 탭라인은 테마의 기본 테마를 사용합니다. 다음 하이라이트를 편집하여 사용자 정의할 수 있습니다.
더 깨끗하게 만드는 예:
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 ' )
결과:
Harpoon에 대한 질문은 Primeagen Discord 서버의 #harpoon 채널에서 확인하실 수 있습니다.