在vim中,如何映射“保存”(:w
)到ctrl- s。
我正在尝试“映射”命令,但是当我按xterm时会冻结 ctrl-s。
如果我给ctrl- v,ctrl-s我仍然只看到一个^
,而不是^S
。
在vim中,如何映射“保存”(:w
)到ctrl- s。
我正在尝试“映射”命令,但是当我按xterm时会冻结 ctrl-s。
如果我给ctrl- v,ctrl-s我仍然只看到一个^
,而不是^S
。
Answers:
Ctrl+S是终端停止更新的常用命令,它是减慢输出速度的一种方法,因此您可以在没有回滚缓冲区的终端上读取它。首先确定您是否可以配置xterm以将Ctrl+S传递给应用程序。然后这些映射命令将起作用:
noremap <silent> <C-S> :update<CR>
vnoremap <silent> <C-S> <C-C>:update<CR>
inoremap <silent> <C-S> <C-O>:update<CR>
顺便说一句:如果Ctrl+S冻结了您的终端,请输入Ctrl+Q使其重新运行。
<C-W>
通常用于窗口拆分和窗口命令
在具有VI的Linux中,您需要按Ctrl-S并保存您的文档。这对我有用,在您的.vimrc文件中放入以下三行。该文件应位于您的主目录中:/home/el/.vimrc
如果该文件不存在,则可以创建它。
:nmap <c-s> :w<CR>
:imap <c-s> <Esc>:w<CR>a
第一行说:在文档中按Ctrl-S将执行:w <enter>
键盘组合。
第二行说:在“插入”模式下在文档中按Ctrl-S将跳到普通模式,执行:w <enter
,然后按a
返回到插入模式。在此事件期间,您的光标可能会移动。
您可能会注意到,按Ctrl-S执行“ XOFF”将停止接收命令(如果使用ssh)。
要解决此问题,请将这两个命令放在〜/ .bash_profile中
bind -r '\C-s'
stty -ixon
,做什么是关闭的结合Ctrl-S而当按下摆脱任何XOFF的屏幕上的信息Ctrl- S。请注意,对.bash_profile进行更改后,必须使用命令'source .bash_profile'或注销/登录重新运行它。
更多信息: http //vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files
imap
命令?看来您只需要imap <c-s> <Esc>:w<CR>a
。谢谢。
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(如果使用)
# ~/.zshrc
# enable control-s and control-q
stty start undef
stty stop undef
setopt noflowcontrol
bash(如果使用)
# ~/.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
吗?