linux vim 怎么实现代码补全的啊?

我看人家输入for不知道按什么键,for后面代码都补全了还有,我想删除上一行下一行必须先按ESC然后输入dd么不能再插入模式下用快捷键直接删除上一行或者下一行吗?就像ec... 我看人家输入for 不知道按什么键,for后面代码都补全了
还有,我想删除上一行下一行必须先按ESC然后输入dd么
不能再 插入模式下用快捷键直接删除上一行或者下一行吗?
就像eclipse下用ctrl+d ctrl+alt+↑那样直接用的快捷键,不用切换模式的?

我用习惯eclipse了,之前没用过vim……所以想问问技巧
展开
 我来答
hqxz556
推荐于2016-02-10 · TA获得超过2830个赞
知道大有可为答主
回答量:1686
采纳率:93%
帮助的人:555万
展开全部

vim 比较灵活,有自己的习惯的话,可以把它们加到 vim 里。


如果楼主希望在插入模式里,用  ctrl-d 它来实现删除当前行的话,只要将如下语句加到 vimrc 文件即可:

inoremap <C-D> <C-o>dd

<c-o> 用于在插入模式下暂时执行一个普通模式下的命令,执行后返回插入模式。


所以加了上面那个映射之后,ctrl-d 就相当于 eclipse 下的删除当前行了。不过定义这个映射之后,ctrl-d 本来的功能(减少当前行的缩进)就会被覆盖。


我没用过 eclipse,ctrl-alt-up 是什么功能也不知道。不过原理类似,想用 vim 模拟一些其它编辑器的快捷键不会很困难。



至于那个 for 的补全,可能是一些插件。有不少人开发了 vim 的插件以方便书写代码,原理基本上是一些替换。

最简单的比如:

iabbr fori  for (int i = 0; i < 10; i++)

加在 vimrc 里(如果只是想试验一下,只要按冒号再照敲上面的语句就可以了),之后写码的时候只要写 fori 空格回车之类的随你,就会被自己替换成你之前定义好的代码。当然要想让这个自己替换的工作更方便好用,比如补全之后把光标停在第二个分句的 i < 后面等等之类的功能,就需要更复杂的定义。

vim 有很强的扩展能力,可以用来增强它的工作效率。插件楼主可以去官网上搜,不过越是方便的插件可能就越复杂,用起来可能也就越不顺手(因为操作习惯很可能和自己需要的很不一致),学习起来的难度一般也越大。

追问
哇!果然是这么实现的啊。但还想请教一个问题

我习惯eclipse的按键了 基本都是这么设置的,但SHIFT+ENTER却是无效的

我设置的是 imap
但无效,是因为terminal的按键起冲突了么?
怎么实现啊?
追答
alt 键在终端里使用是容易出现问题。原因比较复杂,我以前也遇到过,不过后来没仔细研究。

你可以试试这个脚本:
QICHUAN_ZHANG
2014-03-08 · TA获得超过199个赞
知道小有建树答主
回答量:1646
采纳率:0%
帮助的人:548万
展开全部
在vim编辑文件的时候是不可以不全的。只有在shell才可以的
发下私信来吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-09
展开全部
我是菜鸟,无法解答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式