前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于vim的简单设置以及使用技巧

关于vim的简单设置以及使用技巧

作者头像
BGBiao
发布2018-02-26 14:31:08
8640
发布2018-02-26 14:31:08
举报
文章被收录于专栏:容器云生态容器云生态

vim快速指南:

vim 使用技巧: 1、认识.命令 最理想的编辑模式:一次按键移动,一次编辑操作 .命令可以重复上一次的修改操作 在普通模式下: j切换到下一行 A切换到本行的行末,并进入插入模式 注意:一般情况下将j.两个命令联合使用是比较常见的选择 可能这里你觉得.命令并没有什么特别的地方,but“上一次的修改”其实是有很多含义滴 比如: 普通模式下:     x命令表示删除当前行光标所在字符,下一次执行.命令则是删除当前光标字符操作     >G命令表示修改当前行到行末(>gg)的缩进层级,下一次执行.命令则是继续执行修改缩进层级;[此处好好感受下>G和>gg命令,其实就能感觉到.命令的作用区别]     dd命令表示删除一行,下一次执行.命令则继续执行删除一行

插入模式下:     从进入插入模式[a|i|o|O等]的那一刻起,到结束插入[esc],vim会记录每一次按键操作,并形成一次修改     A命令在行末任意追加一个字符,并ESC退出,下一次执行.命令,将执行整个插入操作 应用实例:     在每一行末尾增加分号(;)[A命令进入末行并进入插入模式,输入;字符,并执行j.命令,在下一行进行追加分号(其实这里也可以使用$a代替A,不过就比较耗费键盘啦,其实更多的是消耗时间啦) 注意:     在vim中如果能使用复合键的,还是尽量使用复合键,不仅能提高效率,对于键盘以及手指的损耗,还是挺有帮助滴&*&。以下是vim中部分复合键的相关对应关系:     C    c$(cc是剪切一整行)     s    cl(剪切当前字符,并进入插入模式)     S    ^c     I     ^i     A    $a

身在江湖,有时候退是为了更好的进!让我们为了部落,为了联盟,后退吧。。。。德玛西亚 应用实例:     小技巧,替换一个字符的前后字符,可以先进行当前字符的删除操作,之后在重新编辑。     例如:需要在+号前后各加一个空格,这样可以先删除+,然后输出空格+空格,在使用.命令替换     var Andy = "method("+argu+","+argu2+")"----》 var foo = "method(" + argu + "," + argu2 + ")";     fa匹配一行中a字符所在的第一个位置;使用格式:f{char}     ;匹配一行中第二个匹配字符的位置(和上一个f操作息息相关噢 ).     ;命令会重复查找上一次f命令所查找的字符,同时,命令怎会向前查找f命令匹配的字符     执行命令:f+;s + ;';.';';.'     注意:f+匹配一行中第一个+号;s + 先剪切+字符,然后修改为空格+空格;';.'跳转到第二个匹配字符,并执行上一次修改操作 战争就是移动,改变,出击,谁能够快速做出决策,谁就是最终的胜利者! 让我们的编辑和修改操作都能在最大短时间进行移动和修改,这才是最佳的编辑方式! 一些常用的快捷移动和修改操作总结:     作用        操作        重复        回退     修改        {edit}        .        u     行内向后查找字符    f{char}        ;        ,     全文查找下一匹配 /pattern    n        N

快不一定是最好的,谁能做大精确定位,谁就是最终的王者!     vim中另外一个批量单键命令操作*,查找全文中全部光标所在单词,n跳转到下一个单词     cw剪切一个单词,并进入插入模式 需要注意的是:在英文文献中很多单词根据语境不通,从而表现的含义也是不相同的,因此在有文章进行批量替换的时候,需要注意下,那些单词可以进行替换,那些单词不可以进行替换, 因此在想要执行大批量替换的时候,需要注意下,是否可以直接使用:%s/char/char1/g命令去进行操作!     在需要对语义进行判断后进行修改的,最好还是不要图快,可以先使用*全文匹配单词,修改完成后依次执行n和.命令进行逐个替换!     注意:'.'命令一定是在光标所在位置的原子操作下生效的。也就是光标在那个位置,进行的修改操作才可以使用.命令

2.普通操作 普通模式下其他一些快捷键的操作:   根据光标位置不同,删除一个单词操作:     光标在最后:db命令,删除从光标起始位置到单词开头的内容,保留光标位置的当前字符(可以使用x命令再删除)     光标在首字母:b命令,将光标移动到单词的开头,dw删除一个单词     daw命令,删除整个单词   综合比较上面三个命令,第三个命令可以理解为一个原子操作,因此在包装修改命令的时候,是可以使用.命令记录删除整个单词操作的

技巧:     能够重复,就不要使用计数     尝试理解d2w,2dw以及dw.三者之间的区别。当删除更多的单词时候,我们是使用dnw还是dw加上n个.命令。对于准确性和回滚可操作性来说还是后者比较实用的 注意:使用次数的一个好处就是能够保留一个完整的、连贯的撤销历史记录。如果可以把需要修改的对象当做一个连贯的,认为是一个原子操作的话,那么使用计数还是比较方便的。(c3w)

    dap命令,删除一段     gUap命令,将一段文字转换成大写(gu小写)     gUaw命令,将一个单词转换成大写     g~命令,反转大小写     gu命令,转换为小写     gU命令,转换为大写     >增加缩进     <减少缩进     gg=G命令,自动缩进整个文件。(gg到首行,=G执行全文自动缩进)

插入模式:     ctrl+w    删除一个单词     ctrl+u    删除至行首

可视模式:     需要注意的是,在可视模式下,很多命令和普通模式下的命令都是可以通用的!     vi命令进入可视模式     viw进入可视模式,并高亮当前光标所在单词     c命令,剪切掉光标选中内容,并进入插入模式、     Vj高亮选中两行,>.缩进(vj>.连续缩进两行两次级别缩进) 写python时候比较实用些

命令行模式:     调用外部shell命令,命令行模式输入!command     单独调用一个shell,命令行模式输入!shell

vim 管理多个文件:     注意:vim中对多窗口的操作都是在ctrl+w的前提下     ctrl+w+v 拆分竖屏     ctrl+w+s 水平拆分     ctrl+w+h 切换到左边屏幕     ctrl+w+l 切换到右边屏幕     ctrl+w+c 关闭活动窗口(:close)     ctrl+w+o 只保留活动窗口,关闭其他(:on)

#vim .vimrc set ts=4 sw=4 expandtab            (设置tab宽度,tabstop=4 shiftwidth=4 expandindent空格代替制表符) set autoindent smartindent        设置自动缩进,为c程序提供自动缩进 set foldenable foldmethod=indent    打开折叠功能。(zi打开折叠,zm关闭折叠) nmap <c-n> :tabnext<cr> nmap <c-p> :tabprevious<cr> 代码补全 set completeopt=preview,menu 注意: manual           手工定义折叠 indent             更多的缩进表示更高级别的折叠 expr                用表达式来定义折叠 syntax             用语法高亮来定义折叠 diff                  对没有更改的文本进行折叠 marker            对文中的标志折叠

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档