Dies ist veraltet und alle zukünftigen Änderungen werden sich auf den Zweig harpoon2
beziehen.
Harpune 2
STATUS : Fusion mit der Hauptlinie am 20. April oder 9. Juni (schön)
– Bild bereitgestellt von Bob Rust
Dies ist noch nicht vollständig gebacken, obwohl es von mehreren Personen verwendet wird. Wenn Sie auf Probleme stoßen, eine Verbesserung sehen, die Ihrer Meinung nach großartig wäre, oder einfach nur Feedback für Harpoon (oder mich) haben, machen Sie ein Problem!
:bnext
und :bprev
wiederholen sich zu sehr, alternative Dateien reichen nicht ganz aus usw. usw.vim-plug
). Plug ' nvim-lua/plenary.nvim ' " don't forget to add this one if you don't have it yet!
Plug ' ThePrimeagen/harpoon '
Hier erklären wir, wie man die Kraft der Harpune nutzt:
Sie markieren Dateien, die Sie später erneut aufrufen möchten
: lua require ( " harpoon.mark " ). add_file ()
Alle Projektmarkierungen anzeigen mit:
: lua require ( " harpoon.ui " ). toggle_quick_menu ()
Sie können in der Liste nach oben und unten gehen, etwas eingeben, löschen oder neu anordnen. q
und <ESC>
verlassen und speichern das Menü
Sie können auch zu einer beliebigen Markierung wechseln, ohne das Menü aufzurufen. Verwenden Sie dazu unten den gewünschten Markierungsindex
: lua require ( " harpoon.ui " ). nav_file ( 3 ) -- navigates to file 3
Sie können die Liste auch in beide Richtungen durchlaufen
: lua require ( " harpoon.ui " ). nav_next () -- navigates to next mark
: lua require ( " harpoon.ui " ). nav_prev () -- navigates to previous mark
Öffnen Sie im Schnellmenü eine Datei in: einer vertikalen Teilung mit Strg+V, einer horizontalen Teilung mit Strg+X, einer neuen Registerkarte mit Strg+T
Dies funktioniert wie die Dateinavigation, mit der Ausnahme, dass ein neues Terminal erstellt wird, wenn am angegebenen Index kein Terminal vorhanden ist.
lua require ( " harpoon.term " ). gotoTerminal ( 1 ) -- navigates to term 1
Befehle können an jedes Terminal gesendet werden
lua require ( " harpoon.term " ). sendCommand ( 1 , " ls -La " ) -- sends ls -La to tmux window 1
Darüber hinaus können weitere Befehle für später schnell gespeichert werden
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 wird standardmäßig unterstützt und kann als Ersatz für normale Terminals verwendet werden, indem einfach 'term' with 'tmux'
ersetzt wird
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
und goToTerminal
akzeptieren auch alle gültigen tmux-Bereichsbezeichner.
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'
Sobald Sie zu einem tmux-Fenster wechseln, können Sie jederzeit zu neovim zurückkehren. Dabei handelt es sich um ein kleines Bash-Skript, das zu dem Fenster wechselt, in dem neovim ausgeführt wird.
Fügen Sie dies in Ihrer tmux.conf
(oder überall dort, wo Sie Tastenkombinationen haben) hinzu
bind-key -r G run-shell " path-to-harpoon/harpoon/scripts/tmux/switch-back-to-nvim "
1. Registerharpune als Teleskopverlängerung
require ( " telescope " ). load_extension ( ' harpoon ' )
Derzeit werden im Teleskop nur Markierungen unterstützt
:Telescope harpoon marks
Wenn eine Harpunenkonfiguration gewünscht wird, muss dies über die Harpunen-Setup-Funktion erfolgen
require ( " harpoon " ). setup ({ ... })
Hier finden Sie alle verfügbaren globalen Einstellungen mit ihren Standardwerten
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 = " " ,
}
um Terminalbefehle für die spätere Verwendung vorzukonfigurieren
projects = {
-- Yes $HOME works
[ " $HOME/personal/vim-with-me/server " ] = {
term = {
cmds = {
" ./env && npx ts-node src/index.ts "
}
}
}
}
harpoon.log
im NVIM-Cache-Pfad geschrieben ( :echo stdpath("cache")
)trace
, debug
, info
, warn
, error
oder fatal
. warn
ist die Standardeinstellungvim.g.harpoon_log_level
festgelegt werden (muss vor setup()
liegen).HARPOON_LOG=debug nvim
Vorrang vor vim.g.harpoon_log_level
.warn
zurückgesetzt. Sie dienen einem ähnlichen Zweck, unterscheiden sich jedoch in einigen wesentlichen Punkten:
Manchmal ist die Standardbreite von 60
nicht breit genug. Das folgende Beispiel zeigt, wie Sie eine benutzerdefinierte Breite konfigurieren, indem Sie die Breite des Menüs relativ zur Breite des aktuellen Fensters festlegen.
require ( " harpoon " ). setup ({
menu = {
width = vim . api . nvim_win_get_width ( 0 ) - 4 ,
}
})
Standardmäßig verwendet die Tabline das Standardthema Ihres Themas. Sie können Folgendes anpassen, indem Sie die folgenden Highlights bearbeiten:
Beispiel, um es sauberer zu machen:
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 ' )
Ergebnis:
Für Fragen zu Harpoon gibt es einen #harpoon-Kanal auf dem Discord-Server von Primeagen.