In Vim, wie kann ich "save" (Karte :w) zu ctrl- s.
Ich versuche, den Befehl "zuzuordnen", aber xterm friert ein, wenn ich ctrl- drücke s.
Wenn ich geben ctrl- v, ctrl- snoch sehe ich nur eine ^, nicht ^S.
In Vim, wie kann ich "save" (Karte :w) zu ctrl- s.
Ich versuche, den Befehl "zuzuordnen", aber xterm friert ein, wenn ich ctrl- drücke s.
Wenn ich geben ctrl- v, ctrl- snoch sehe ich nur eine ^, nicht ^S.
Antworten:
Ctrl+ Sist ein allgemeiner Befehl für Terminals, die Aktualisierung zu beenden. Es war eine Möglichkeit, die Ausgabe zu verlangsamen, damit Sie sie auf Terminals lesen können, die keinen Scrollback-Puffer haben. Finden Sie zuerst heraus, ob Sie Ihr xterm so konfigurieren können , dass es Ctrl+ San die Anwendung weiterleitet . Dann funktionieren diese Kartenbefehle:
noremap <silent> <C-S> :update<CR>
vnoremap <silent> <C-S> <C-C>:update<CR>
inoremap <silent> <C-S> <C-O>:update<CR>
Übrigens: Wenn Ctrl+ SIhr Terminal einfriert, geben Sie Ctrl+ ein Q, um es wieder in Betrieb zu nehmen.
<C-W>wird normalerweise für Fensteraufteilung und Fensterbefehle verwendet
Unter Linux mit VI möchten Sie drücken Ctrl- Sund Ihr Dokument speichern lassen. Dies hat bei mir funktioniert . Fügen Sie die folgenden drei Zeilen in Ihre .vimrc-Datei ein . Diese Datei sollte sich in Ihrem Home-Verzeichnis befinden: /home/el/.vimrc Wenn diese Datei nicht vorhanden ist, können Sie sie erstellen.
:nmap <c-s> :w<CR>
:imap <c-s> <Esc>:w<CR>a
In der ersten Zeile steht: Durch Drücken von Ctrl- Sinnerhalb eines Dokuments wird eine :w <enter>Tastaturkombination ausgeführt.
In der zweiten Zeile heißt es: Drücken von Ctrl- Sinnerhalb eines Dokuments im Einfügemodus kehrt in den normalen Modus zurück, führen Sie a aus :w <enterund drücken Sie a, um in den Einfügemodus zurückzukehren. Ihr Cursor kann sich während dieses Ereignisses bewegen.
Möglicherweise stellen Sie fest, dass durch Drücken von Ctrl- Sein 'XOFF' ausgeführt wird, das den Empfang von Befehlen verhindert (wenn Sie ssh verwenden).
Um dies zu beheben, platzieren Sie diese beiden Befehle in Ihrem ~ / .bash_profile
bind -r '\C-s'
stty -ixon
Dadurch wird die Bindung von Ctrl- Sdeaktiviert und alle XOFF-Bildschirmmeldungen beim Drücken von Ctrl- entfernt S. Hinweis: Nachdem Sie Änderungen an Ihrem .bash_profile vorgenommen haben, müssen Sie es mit dem Befehl 'source .bash_profile' oder logout / login erneut ausführen.
Weitere Informationen: http://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files
imapBefehle verwenden? Es scheint, als ob Sie nur brauchen imap <c-s> <Esc>:w<CR>a. Vielen Dank.
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 (wenn Sie verwenden)
# ~/.zshrc
# enable control-s and control-q
stty start undef
stty stop undef
setopt noflowcontrol
Bash (wenn Sie verwenden)
# ~/.bash_profile or ~/.bashrc
# enable control-s and control-q
stty -ixon
vnoremap <c-s> <Esc>:w<CR> # visual mode: escape to normal and save?
alias vim="stty stop '' -ixoff; vim"
Warum? Was ist los? Siehe hier , aber im Grunde genommen wird für die meisten Terminals ctrl+s bereits für etwas verwendet, also dieser Alias vim, damit wir diese Zuordnung deaktivieren, bevor wir vim ausführen.
nmap <c-s> :w<cr>
imap <c-s> <esc>:w<cr>a
Warum? Was ist los? Dieser sollte ziemlich offensichtlich sein, wir ordnen ctrl+s nur verschiedenen Tastenanschlägen zu, je nachdem, ob wir uns im normalen Modus oder im Einfügemodus befinden.