zoukankan      html  css  js  c++  java
  • 玩转VIM编辑器程序员的一些技巧

    玩转VIM编辑器-程序员的一些技巧

    代码语法高亮显示

          可以通过使用:syn on:syn off来开启或关闭代码语法高亮显示,效果如下:

     

    clip_image002   clip_image004

     

    巧妙的缩排

          对于特定的区域可以通过使用它CTRL+V来选择,然后通过>来整块向右移动,或者通过<向左移动。

          如果没有其他的设定,一般这种移动只能做一次,然后vim就进入正常模式,可以通过设定

    :vnoremap < <gv

    :vnoremap > >gv

    来支持无限次移动,按ESC退出即可。

    vim中访问man帮助页面

          vim编辑器中,如果想查询那个wordman页面,可以通过K来访问,当然,对于多个含义的,可以通过NK来访问不同章节的意义,其中N为数字,比如sleep,如果直接按K得到用户命令sleep的帮助页面,如果输入3K,那么将得到sleep函数的帮助页面。

    定制man帮助页面的查找

          上面介绍的通过K来查询man帮助信息,如果对于perl程序员,可能更多的希望查询perldoc的信息,那么可以通过设定

    :set keywordprg=perldoc\ -f

    将会在按下K的时候,自动转移到perldoc而不使用man页面了。

    跳转到变量定义处

          在光标位于某个变量的时候,可以通过gd来跳转到局部变量的定义处,通过gD来跳转到全局变量的定义处。

    Tabular: Vim 中对齐文本

    Vim 插件 Tabular 允许你在 Vim 中按等号、冒号、表格等来对齐文本,对于经常写代码的朋友来说,有 Tabular 将会非常方便。

    clip_image006

    如上图所示,假如我想让其中的两行按等号对齐,则将光标定位到有等号的那行,执行 :Tab /= 即可。

    又如,若想将下面的

    |1|2|

    |one|two|

    变成

    | 1   | 2   |

    | one | two |

    可执行 :Tab /|

    更详细的信息,我会单独拿出一部分来讲解这个plugin的使用。

    使用它CTRL键来增加或者减小数字

          可以通过CTRL+A来使得光标对应的数字加1,或者CTRL+X来将光标对应的数字减1。当然,支持从0减小为负数的。

    vim插入状态中执行vim命令

    1.    处于vim的插入状态

    2.    使用CTRL+O,这会使你暂时进入命令状态

    3.    输入需要执行的命令

    4.    命令执行完后,会自动返回到插入状态

    查看当前文件细节

    使用CTRL+G就可以看到类似

    "***.c" [Modified] 338 lines --39%--  的基本信息,

    更详细的信息可以通过g CTRL+G来查看,看到效果为

    Col 52-59 of 55-62; Line 135 of 338; Word 379 of 816; Byte 3996 of 9506

    关于vim的状态栏信息

          我们可以通过:set laststatus=2来使能查看行、列及百分比信息。

    例如:

    :set statusline=Filename:%t\ Line:\ %l\ Col:\ %c

    看到的信息为:

    Filename:shao.c Line: 140 Col: 4

    又如下面的一些示例,可以打印一些比较感兴趣的内容:

    :set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P

    :set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P

    :set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'

    :set statusline=...%r%{VarExists('b:gzflag','\ [GZ]')}%h

          下面是一些状态栏中可以使用的关键变量,更详细的参考:help statusline

    • F – 全路径Full path

    • M – 修改标志显示为"+""-"

    • R – 只读标记,显示为"RO".

    • L –

    • c –

    • P – 显示窗口底部的百分比

    大小写转换

    控制键

    描述

    ~

    将光标指定的字符转换大小写

    5~

    更改接下来的5个字符

    g~{移动键}

    比如g~j将更改当前行和下面一行的大小写

    g~~

    将当前行全部更改大小写

    gUU

    将当前行全部更改为大写

    guu

    将当前行全部更改为小写

    gUaw

    将当前字字更改为大写

    guaw

    将当前字更改为小写

    U

    visual块全部改为大写

    u

    visual块全部改为小写

    guG

    从当前位置到文件结尾全部改为小写

    gUG

    从当前位置到文件结尾全部改为大写

    拼写检查

    拼写检查命令

    描述

    :set spell

    启动拼写检查,将会高亮显示可能出现的错误

    ]s

    跳到下一个拼写错误的地方

    [s

    跳到前一个拼写错误的地方

    z=

    对于拼写错误的建议

    zg

    将高亮显示错误的添加为有效单词

    :echo &spelllang

    显示拼写检查的语言

    :set spelllang=code

    设置拼写检测的语言

    退出确认

          一般,如果我们忘记了保存修改的内容,而直接操作:q,将会提示No write since last change,我们可以通过:confirm q来提示是、否或取消当前操作。

    提示为:

    :confirm q

    Save changes to "shao.c"?

    [Y]es, (N)o, (C)ancel:

    关于更新时间戳的问题

          一般我们执行:w的时候,不管有没有对文件内容有所操作,都会将时间戳更新,如果只是希望在更改了文件内容时,才更新时间戳,可以使用:up来操作。

    制表符和空格键

    命令

    描述

    :set expandtab

    tab键自动转为空格键,一般是8个空格

    :set tabstop=4

    tab转换为4个空格

    :retab

    将文件中所有的tab转换为空格

    :set shiftwidth=4

    指定缩进的空格数目

    :set ai

    自动缩进,使用它^D可以向左缩进

     

  • 相关阅读:
    JDK源码之LinkedList
    MySQL常规知识点总结
    根据不同分辨率载入相应CSS样式表
    关于1.0.0版Backbone.js调用validate
    弹性盒模型计算
    使用CocoaPods
    Objective-C中的Block[转]
    将UTF8编码转化为中文 - NSString方法
    添加第三方类库造成的Undefined symbols for architecture i386:编译错误
    App适配iPhone 6/ Plus和iOS 8:10条小秘诀
  • 原文地址:https://www.cnblogs.com/shaoguangleo/p/2806038.html
Copyright © 2011-2022 走看看