为了账号安全,请及时绑定邮箱和手机立即绑定

vim 如何对不同的语言采用不同的键映射

vim 如何对不同的语言采用不同的键映射

炎炎设计 2019-05-25 16:17:46
我想把大括号映射成输入左大括号就有这样的效果intmain(void){//缩进了}我通过修改home目录下的.vimrc可以达到效果,问题是这样设置是对所有的文件都有效的,C++我想有这样的效果,但是别的语言(如python/lua)我不想有这样的映射,怎样针对某种语言进行vim的设置呢?要修改哪个文件呢?
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

问题已解决,在~/.vim/ftplugin/目录下面找到特定语言对应的配置文件。比如在我的ubuntu下找到了~/.vim/ftplugin/cpp.vim,在最后一行加上了
:imap{{}O
这样对于所有的cpp文件这个设置都会生效。但是如果是其它扩展名的文件则不生效。BTW:如果是像我一样的vim新手不会map的话,可以在进入vim之后使用:helpmap命令查看帮助。Done.
                            
查看完整回答
反对 回复 2019-05-25
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

也是写在.vimrc里,但是要指定文件类型:
filetypeindenton
autocmdFileTypecppsetlocal......
#后面省略号为具体设置,空格分隔,缩写见下表
变量名
缩写
含义
(no)autoindent
ai
自动缩进,即为新行自动添加与当前行同等的缩进。
(no)cindent
ci
类似C语言程序的缩进
(no)smartindent
si
基于autoindent的一些改进
tabstop=X
ts
编辑时一个TAB字符占多少个空格的位置。
shiftwidth=X
sw
使用每层缩进的空格数。
(no)expandtab
(no)et
是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V
softtabstop=X
sts
方便在开启了et后使用退格(BACKSPACE)键,每次退格将删除X个空格
(no)smarttab
(no)sta
开启时,在行首按TAB将加入sw个空格,否则加入ts个空格。
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 591 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信