Zaznaczanie tekstu w trybie kopiowania Tmux

73

Uruchamiam Tmux w trybie Vi. Nawigacja podobna do Vi w trybie kopiowania działa dobrze. Nie mogę jednak wybrać żadnego tekstu. Ani v, ani V nie przełączają się do trybu zaznaczania tekstu podobnego do Vi.

czego mi brakuje?

Nawiasem mówiąc, czy możliwe jest wyświetlanie numerów linii w trybie kopiowania?

PS: Używam Tmux na Mac OS z powłoką Z.

Mantas
źródło

Odpowiedzi:

90

Krótka odpowiedź: spacja rozpoczyna wybór i wprowadza kopie.

Do przyszłego użytku otrzymałem to ze strony man tmux:

       Function                vi             emacs
       Back to indentation     ^              M-m
       Clear selection         Escape         C-g
       Copy selection          Enter          M-w
       Cursor down             j              Down
       Cursor left             h              Left
       Cursor right            l              Right
       Cursor to bottom line   L
       Cursor to middle line   M              M-r
       Cursor to top line      H              M-R
       Cursor up               k              Up
       Delete entire line      d              C-u
       Delete to end of line   D              C-k
       End of line             $              C-e
       Goto line               :              g
       Half page down          C-d            M-Down
       Half page up            C-u            M-Up
       Next page               C-f            Page down
       Next word               w              M-f
       Paste buffer            p              C-y
       Previous page           C-b            Page up
       Previous word           b              M-b
       Quit mode               q              Escape
       Scroll down             C-Down or J    C-Down
       Scroll up               C-Up or K      C-Up
       Search again            n              n
       Search backward         ?              C-r
       Search forward          /              C-s
       Start of line           0              C-a
       Start selection         Space          C-Space
       Transpose chars                        C-t

Aktualizacja: tmux list-keyspolecenie wyświetli również listę wszystkich niestandardowych powiązań klawiszy.

bluehavana
źródło
70

Użyj spacji na początku zaznaczenia i wprowadź na końcu.

Kopiuj:

  • Ctrlb[
  • Space
  • Enter

pasta:

  • Ctrlb]
nonameentername
źródło
1
To powinna być odpowiedź. Można to poprawić, wyjaśniając wejście / wyjście z trybu kopiowania.
mcsilvio,
2
Świetna, krótka odpowiedź. Uwaga dla innych vi [m] neofitów: Jeśli używasz modalnego edytora lub wiersza poleceń, będziesz chciał się upewnić, że jesteś w trybie wstawiania przed próbą wklejenia przy użyciu wspomnianego wyżej Ctrl+b+]. Oczywiste z perspektywy czasu, ale wysyłało mnie kilka razy tam iz powrotem, aż się bawiłem.
JM Janzen,
Myślę, że formatowanie i zwięzłość byłyby świetnym zamiennikiem części „krótkiej odpowiedzi” w mojej odpowiedzi. Czy istnieje sposób na połączenie odpowiedzi, które dają kredyt tam, gdzie należy się kredyt?
bluehavana
hmm ... myśląc dalej, wydaje mi się, że dwie odpowiedzi są bardziej odpowiednie, po prostu chciałbym mieć to jakoś powyżej zakładki.
bluehavana
23

Możesz również skonfigurować plik .tmux.conf, dodając:

# Use v to trigger selection    
bind-key -T copy-mode-vi v send-keys -X begin-selection

# Use y to yank current selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

który pozwoli „v” i „y” wejść w tryb wizualny i kopiować, jak w vimie.

( Źródło )

Manur
źródło
1
Dostaję komunikat „nie znaleziono polecenia: klucz wiążący” w tmux 1.9a
Olivier Lalonde
Ups, przez przypadek umieściłem go w .zshrc, nvm :)
Olivier Lalonde,
7
Te rzeczy zmieniły się w nowszych wersjach Tmux. Terazbind-key -T copy-mode-vi ...
Steven Lu,
21

Upstream (2.4+) tmux zmienił sposób wiązania w celu rozpoczęcia wyboru. Aby utworzyć powiązanie dla tego, o co OP prosi, użyj -Ti wyślij klucze za pomocą -X:

# Use v to trigger selection    
bind-key -T copy-mode-vi v send-keys -X begin-selection

# Use y to yank current selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
p1100i
źródło
Mój tryb kopiowania tmux właśnie przestał działać całkowicie i nie mogłem go rozwiązać, to naprawiło.
GTF,
tmuxaktualizacje łamią moje konfiguracje częściej niż chciałbym ... :-(
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
2

Uważam, że przejście do trybu vi jest moim wąskim gardłem, do którego używam:

setw -g mode-keys vi
set-window-option -g mode-keys vi  
unbind [
bind-key -n F2 copy-mode
Paweł
źródło