/:echo "Saved"
,而不是saved
,当我处于普通模式时,我会看到相同的内容。我在做什么错?这是我vimrc的最顶层,因此我的其他代码不会引起问题。我在OSX终端中运行Vim。
#1 楼
为了确保即使通过单独的工具(例如git)启动Vim时,该解决方法也能正常运行,我在~/.vimrc
中提供了此方法: X和MacVim。注意事项:在Windows或任何缺少
stty
命令的其他操作系统上,每次Vim启动时,以上内容可能会引发错误! (silent!
可能会静音。)如果您的外壳已经禁用了该TTY设置,则当然
VimLeave
自动命令将再次将其重新打开! iProgram的方法通过在启动时检测设置来管理该问题。 为了避免在
stty -g
和stty --save
之间进行选择,您可以仅对ix
选项尝试以下测试。" Allow us to use Ctrl-s and Ctrl-q as keybinds
silent !stty -ixon
" Restore default behaviour when leaving Vim.
autocmd VimLeave * silent !stty ixon
#2 楼
感谢@Carpetsmoker提供的链接。将此脚本添加到
bash_profile
中对我有用。 http://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files 我还必须删除:
前的空格
#3 楼
如果具有以下修补程序,它应该可以立即使用:8.2.0852在某些系统上无法映射CTRL-S
8.2.0856 CTRL-S停止输出
尽管如此,我将重写映射:
nnoremap <c-s> :<c-u>w <bar>echo 'Saved'<cr>
inoremap <c-s> <c-\><c-o>:w <bar>echo 'Saved'<cr>
评论
您是否正在通过终端使用Vim? Control + S也是由终端选择的特殊键绑定,表示“停止输出” ...当我尝试使用gVim的上述两个键绑定时,它似乎起作用。“我也在Mac终端中运行vim。”是的,我正在通过终端运行vim。使用Alt代替Ctrl或Cmd会更好吗?
顺便说一句,这个问题已经问了很多遍了;-)我没有时间写答案,但是那个链接应该可以帮助您...
要将保存绑定到OSX上的Cmd-S,您可以尝试从