vim tab 自动补全,怎样取消其提示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim tab 自动补全,怎样取消其提示相关的知识,希望对你有一定的参考价值。
之前设置了 vim tab 自动补全提示,但是有一个问题是,当我在一行行首,希望 tab 缩进一下的时候,它也会弹出自动补全提示窗口,并且尝试多个按键都不能撤销其已上位内容,该怎么处理?(部分表述可能不够专业,不知道术语,还请各位朋友理解就好。)
举例:
如上图,1,3 行先输入了
test
test again
之后在第5行,我希望按 tab 缩进一级,我没有先输入任何内容,直接 tab,它会弹出上图那样的提示窗口,并且内容 test 已上位,我无法取消其上位,以一级 tab 缩进替代,希望各位朋友指教?
比如很多其他环境也会有 tab 自动补全,但是按 esc 就可以撤销其补全的内容,保留自己输入的部分,然后再按 tab 就不自动补全而是跳格。但在此处按 esc 是切换到 normal 模式,并且保留已上位内容,比如现在处于上图情况,按 esc 则会转换到 normal 模式,并且 test 成为输入内容。我知道可以再按 >> 来取得缩进效果,但是这样每次在行首希望缩进都得反复击键多次非常麻烦。
================================================
补充:
或者能提供比较好的自动补全解决方案吗?
在Vim 7.4的帮助文档中有这样一段:
For example, the following will map <Tab> to either actually insert a <Tab> if
the current line is currently only whitespace, or start/continue a CTRL-N
completion operation:
if strpart( getline('.'), 0, col('.')-1 ) =~ '^\\s*$'
return "\\<Tab>"
else
return "\\<C-N>"
endif
endfunction
inoremap <Tab> <C-R>=CleverTab()<CR>
也就是说,把上面这段代码贴进配置文件就可以实现:当光标到行首都未出现非空白字符时,Tab还是Tab;否则,Tab就被映射为Ctrl+N的补全命令。用:help expression查看语法,弄明白了可以自己写函数搞点高级功能。
参考技术A 这个tab补全是很蛋疼的事,建议不要折腾之前我折腾了很久最后也装过插件supertab但还是用的很不爽,
还是用回原生的Ctrl+n和Ctrl+p来补全追问
多谢,不过刚刚后来在搜索的过程中发现有人还有其他的一些补全需求,比如说输入一个括号自动分行之类的,看到有在配置中编写函数的方法,估计可以解决,不过这几天事儿多确实没心力搞这个。后面找到解决方案了也跟你分享一下。或者也说不定还有朋友已经做了类似的工作。
追答我猜您说的其他的一些补全需大多应该是比较个性化的,使用键盘映射实现
比如再vimrc配置文件中添加后
inoremap <CR><CR><ESC>kia<ESC>gg=G<C-o><C-o>zzws打到
int func()后再输入两个大括号就变成
int func()//在此处进入插入模式
追问
嗯对,瞄到的就是类似这个的东西,想是既然可以写函数,应该可以实现,不过因为刚接触 vim 不久,可能对巧妙点的解决方案不够敏感。
Linux Vim中自动补全Python插件:Pydiction
Pydiction 可以是我们使用Tab键自动补全Python代码在Vim,是一款非常不错的插件。
Pydiction不需要安装,所有没有任何依赖包问题,Pydiction主要包含三个文件。
python_pydiction.vim -- Vim plugin that autocompletes Python code.
complete-dict -- Dictionary file of Python keywords, modules, etc.
pydiction.py -- Python script to add more words to complete-dict.
1、下载Pydiction:
(1)wget https://github.com/rkulla/pydiction/archive/master.zip #自行下载上传Linux
(2)#这里我使用Git直接下载:git clone https://github.com/rkulla/pydiction.git
2、创建目录并复制文件:
mkdir -pv ~/.vim/tools/pydiction
cp -r pydiction/after ~/.vim
cp pydiction/complete-dict ~/.vim/tools/pydiction
确保目录结构如下:
[[email protected] ~]# tree .vim
.vim
├── after
│ └── ftplugin
│ └── python_pydiction.vim
└── tools
└── pydiction
└── complete-dict
4 directories, 2 files
rm -f pydiction #删除程序文件
3、新建.vimrc文件
vim ~/.vimrc
添加如下配置:
filetype plugin on
let g:pydiction_location = ‘~/.vim/tools/pydiction/complete-dict‘
let g:pydiction_menu_height = 3
到此配置完成,效果如图
本文出自 “Ljohn” 博客,请务必保留此出处http://ljohn.blog.51cto.com/11932290/1931986
以上是关于vim tab 自动补全,怎样取消其提示的主要内容,如果未能解决你的问题,请参考以下文章