In vim hoe “opslaan” toe te wijzen aan ctrl-s

Hoe kan ik in vim “save” (:w) toewijzen aan ctrls.

Ik probeer het commando “in kaart te brengen”, maar xterm loopt vast wanneer ik op ctrlsdruk.

Als ik ctrlv,ctrlsgeef, zie ik nog steeds alleen een ^, niet ^S.


Antwoord 1, autoriteit 100%

Ctrl+Sis een veelgebruikt commando voor terminals om te stoppen met updaten, het was een manier om de uitvoer te vertragen, zodat je het kon lezen op terminals die geen een scrollback-buffer. Zoek eerst uit of u uw xtermkunt configureren om Ctrldoor te geven +Sdoor naar de applicatie. Dan zullen deze kaartcommando’s werken:

noremap <silent> <C-S>          :update<CR>
vnoremap <silent> <C-S>         <C-C>:update<CR>
inoremap <silent> <C-S>         <C-O>:update<CR>

BTW: als Ctrl+Suw terminal bevriest, typt u Ctrl+Qom het weer aan de gang te krijgen .


Antwoord 2, autoriteit 46%

In Linux met VI wil je CtrlSindrukken en je document laten opslaan. Dit werkte voor mij, zet de volgende drie regels in je .vimrc-bestand. Dit bestand zou zich in uw thuismap moeten bevinden: /home/el/.vimrcAls dit bestand niet bestaat, kunt u het maken.

:nmap <c-s> :w<CR>
:imap <c-s> <Esc>:w<CR>a

De eerste regel zegt: als u in een document op CtrlSdrukt, wordt een :w <enter>toetsenbordcombinatie uitgevoerd.

De tweede regel zegt: als u in een document op CtrlSdrukt terwijl u in de ‘insert’-modus bent, gaat u naar de normale modus, voert u een :w <enterin en druk vervolgens op aom terug te gaan naar de invoegmodus. Je cursor kan tijdens dit evenement bewegen.

Misschien merkt u dat het indrukken van CtrlSeen ‘XOFF’ uitvoert waardoor het ontvangen van opdrachten stopt (als u ssh gebruikt).

Om dat op te lossen, plaats je deze twee commando’s in je ~/.bash_profile

bind -r '\C-s'
stty -ixon

Wat dat doet, is de binding van CtrlSuitschakelen en alle XOFF-berichten op het scherm verwijderen wanneer op CtrlS. Let op, nadat u wijzigingen heeft aangebracht in uw .bash_profile, moet u deze opnieuw uitvoeren met het commando ‘source .bash_profile’ of uitloggen/aanmelden.

Meer informatie: http://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files


Antwoord 3, autoriteit 8%

vim

# ~/.vimrc
nnoremap <c-s> :w<CR> # normal mode: save
inoremap <c-s> <Esc>:w<CR>l # insert mode: escape to normal and save
vnoremap <c-s> <Esc>:w<CR> # visual mode: escape to normal and save

zsh (als je gebruikt)

# ~/.zshrc
# enable control-s and control-q
stty start undef
stty stop undef
setopt noflowcontrol

bash (als je gebruikt)

# ~/.bash_profile or ~/.bashrc
# enable control-s and control-q
stty -ixon

Antwoord 4, autoriteit 7%

Mac OSX-terminal + zsh?

In je .zprofiel

alias vim="stty stop '' -ixoff; vim"

Waarom?, Wat gebeurt er?Zie Hier, maar in principe wordt voor de meeste terminals ctrl+sal ergens voor gebruikt, dus deze alias vim zodat we die mapping uitschakelen voordat we vim uitvoeren .

In uw .vimrc

nmap <c-s> :w<cr>
imap <c-s> <esc>:w<cr>a

Waarom? Wat gebeurt er?Deze zou vrij duidelijk moeten zijn, we wijzen gewoon ctrl+stoe aan verschillende toetsaanslagen, afhankelijk van of we bevinden zich in de normale modus of invoegmodus.

Other episodes