Come inviare il segnale ESC a VIM quando il mio tasto ESC non funziona?


Risposte:


7

Nonostante le soluzioni esistenti, la soluzione convenzionale in Vim è rimappare le chiavi nella .vimrcconfigurazione. In effetti, molti utenti di Vim hanno una chiave raggiungibile più facilmente rimappata Esc. Le scelte popolari sono Ctrl+ Enter, o jj, ecc.

Per abilitarlo, inserisci qualcosa di simile al seguente .vimrce ricaricalo / riavvia Vim:

" Shift-Enter
inoremap <S-CR> <Esc>
" Double-j
inoremap jj <Esc>

Ulteriori informazioni e alternative


1
Eyup, questo è il modo Vim. Un altro modo comune promosso da Learn Vim the Hard Way (libro) èinoremap jk <Esc>
grochmal

Questa è una buona soluzione, ma qual è il problema da usare solo Ctrl + Invio + j?
Sandra Ross,

@SandraRoss Puoi davvero usare qualsiasi combinazione di tasti che desideri (anche se attenzione che alcuni, ad esempio Ctrl-Invio, non funzionano su macOS). Detto questo, Ctrl + Invio + j mi sembra più difficile da digitare, e onestamente non so se puoi anche configurare combinazioni di tre tasti con due tasti non modificatori (Invio, j) in Vim.
Konrad Rudolph,

Ok, ho capito. In effetti, Ctrl + Invio + jj non funziona per me, perché, in effetti, uso macos X. Almeno, potresti dirmi cosa devo inserire solo per Ctrl + j.
Sandra Ross,

@SandraRoss Per questo, inoremap <C-j> <Esc>dovrebbe funzionare. :-)
Konrad Rudolph il

32

Ctrl- [invia lo stesso carattere al terminale della Escchiave fisica . Quest'ultima è semplicemente una scorciatoia per la prima, in generale.


3
Una volta avevo un vero terminale vt220 e la sua tastiera non ha un Escapetasto. Premere Ctrl+[era l' unico modo per generare Escape.
Kusalananda

11

Se vuoi essere in grado di usare una singola chiave, come una soluzione * nix pura (senza mappature Vim) puoi definire un'altra chiave come Esc. Proprio come gli utenti Emacs rimappare CapsLockper Ctrlalcuni utenti di Vim (me compreso) rimappare CapsLocka Esc. Funziona con qualsiasi * nix usando X11.

Utilizzare xev -event keyboard(e quindi premere CapsLock) per ottenere il codice CapsLockchiave per la chiave (per me è il codice chiave 66). Quindi è possibile utilizzare xmodmapper rimappare la chiave:

xmodmap -e 'remove Lock = Caps_Lock' -e 'keycode 66 = Escape'

Per ottenere questo al login è possibile aggiungere le xmodmapespressioni ~/.Xmodmapcome segue:

remove Lock = Caps_Lock
keycode 66 = Escape

Anche se per la seconda parte YMMV, poiché non tutti i gestori display vengono eseguiti ~/.Xmodmap. Potrebbe essere necessario aggiungere xmodmap .Xmodmapad .xinitrcalcuni di essi.


So esattamente cosa intendi. L'ho visto all'inizio di questa settimana
Sandra Ross, il

Lo farei, ma uso CapsLock come chiave Compose (:
DopeGhoti

6

Potresti provare Ctrl-C, che funziona per me ed è secondo me più facile di ESC. Tuttavia, non sono sicuro che sia abilitato per impostazione predefinita.


CTRL-C è ASCII 0x03, invia SIGINT alla shell - non è lo stesso di ESC.
gatto

@cat Funziona praticamente allo stesso modo in Vim però. Uso sempre Ctrl-C invece di Esc
Erik W,

1
@cat: lo ottieni gratuitamente, perché vim ha quel gestore in atto. Non devi fare nulla da solo. Questa risposta è pronta all'uso; L'ho appena provato. Funziona in generale per qualsiasi applicazione? No, ma non è quello che è stato chiesto.
Lightness Races con Monica il

2
@cat: Davvero? Il titolo è "Come inviare il segnale ESC a vim quando il mio tasto esc non funziona?" , l'unico tag è vim e il problema descritto nella domanda riguarda l'evasione dalla modalità di inserimento di Vim. Ecco la parte riassuntiva della domanda: "Esiste un'altra chiave utilizzata per rilasciare la modalità di inserimento". Se questo non è specifico per Vim e la sua modalità di inserimento, non so cosa sia!
Lightness Races con Monica il

1
@LightnessRacesinOrbit Bene, quando ho visto il titolo inizialmente, era "Un'altra chiave utilizzata per Esc" e la domanda non sembrava affatto specifica vim. scusate! ¯_ (ツ) _ / ¯
cat

-3

Ctrl + F2

È abilitato per impostazione predefinita. Non è necessario configurare alcuna impostazione.

Passerai alla modalità normale, dove puoi farlo :q! or :wq.


3
Ctrl+F2può inviare una via di fuga, ma invierà anche altre cose.
Kusalananda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.