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

vim快速指南:python

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

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

身在江湖,有时候退是为了更好的进!让咱们为了部落,为了联盟,后退吧。。。。德玛西亚
应用实例:
    小技巧,替换一个字符的先后字符,能够先进行当前字符的删除操做,以后在从新编辑。
    例如:须要在+号先后各加一个空格,这样能够先删除+,而后输出空格+空格,在使用.命令替换
    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命令,删除整个单词
  综合比较上面三个命令,第三个命令能够理解为一个原子操做,所以在包装修改命令的时候,是可使用.命令记录删除整个单词操做的it

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

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

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

可视模式:
    须要注意的是,在可视模式下,不少命令和普通模式下的命令都是能够通用的!
    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            对文中的标志折叠

相关文章
相关标签/搜索