Vim映射键无法工作

7
我一直在尝试在vim的插入模式下将ctrl s映射为保存。但似乎从来没有成功过。
网站http://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files(以及其他许多教程)似乎都不起作用。
我正在使用iterm,vim 7,并且我的当前用户下有.vimrc文件。我已经使用命令:source $MYVIMRC重新加载了我的.vimrc文件。
我做错了什么吗?
映射任何其他键也是同样的情况,映射似乎都不起作用。

2
请提供您在 .vimrc 中用于映射的行。 - xappymah
你是使用vim的终端版还是GUI版?并且在哪个系统上? - Jan Hudec
你提供的提示提供了几种方法来实现它。你试过哪些? - Idan Arye
我正在使用终端,确切地说是在Mac OS上的iterm。 (GUI版本适合我)。 很抱歉我现在没有用于映射的行。 我一直在试错。 如果您能提供有效的映射定义,那将非常好? - dvliman
1个回答

7
许多键无法在终端上拦截,因为它们由终端解释并且根本不传递给vim。 Ctrl-S就是其中之一,在大多数终端上表示“挂起”。您可以使用vim的GUI版本,或者选择在您的终端中可用的键组合。

2
这里的“键符号”部分(http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_\(Part_2\))有一些关于流控制字符的注释。 - user786653
7
我有一个别名命令 alias vim="stty stop '' -ixoff ; vim",它可以禁止终端捕获 <C-s> - ZyX
在bash_profile中设置别名vim="stty stop '' -ixoff ; vim",并在.vimrc中映射键是否可行?你能给我展示一下你的.vimrc文件吗?感谢你提供的链接,我会去查看的。 - dvliman
1
@limaoit 1. 在回复开头不要忘记提到 @ZyX:我没有收到通知,只是偶然看到了你的评论。2. 在 bash 中不应该使用这个命令:它会完全禁用 <C-s>。在我的 ~/.zshrc 中由于 ttyctl -f 的存在,这不是一个问题。请查看您在此处发布的 wikia 链接:我已更新解决方案,包括 bash 和 zsh 版本。我的 vimrc 在 这里,但我敢打赌你会在尝试寻找有用内容时遇到困难;唯一使用 <C-s> 的映射是 <C-a><C-s>,因为它也用于在我的 tmux 配置中切换窗格。 - ZyX
@ZyX 谢谢你的回答。我正在使用Bash。哇,你的vimrc确实有很多东西。 - dvliman
请参考以下链接以获取更多关于此问题的讨论:http://vim.1045645.n5.nabble.com/Disabling-terminal-flow-control-in-Vim-td1169027.html - user3751385

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接