Hoe kan ik in vim “save” (:w
) toewijzen aan ctrl–s.
Ik probeer het commando “in kaart te brengen”, maar xterm loopt vast wanneer ik op ctrl–sdruk.
Als ik ctrl–v,ctrl–sgeef, 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 Ctrl–Sindrukken 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/.vimrc
Als 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 Ctrl–Sdrukt, wordt een :w <enter>
toetsenbordcombinatie uitgevoerd.
De tweede regel zegt: als u in een document op Ctrl–Sdrukt terwijl u in de ‘insert’-modus bent, gaat u naar de normale modus, voert u een :w <enter
in en druk vervolgens op a
om terug te gaan naar de invoegmodus. Je cursor kan tijdens dit evenement bewegen.
Misschien merkt u dat het indrukken van Ctrl–Seen ‘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 Ctrl–Suitschakelen en alle XOFF-berichten op het scherm verwijderen wanneer op Ctrl–S. 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.