VIM

  1. GVIM      添加多行注释:v 进入可视模式,shift+方向键 选择注释行 ,ctrl+q 标记航头,I在行头插入,输入插入内同(如//),ESC。
  2. VIM 

    :sp <filename>
     打开一个文件,并和当前打开的文件分屏显示。

    Ctrl+W+W
    在分屏显示中的不同文件中切换。

    *
    向前搜索目前光标所在的单词。

    #
    向后搜索目前光标所在的单词。

    :%s/word1/word2/g
    全文搜索word1并以word2替换之。

    :’a,’bs/word1/word2/g
    仅在第a行到第b行间搜索并替换。

  3. vim中格式化代码

    格式化全文: gg=G

    自动缩进当前行: =

    You can format/indent an entire file using the gg=G command, where

         gg - Goto the beginning of the file
         =   - apply indentation
         G   - till end of file

    For more information, read

         :help gg
         :help =
         :help G
         :help 'formatprg'
         :help C-indenting

 在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:

set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)
set expandtab
 
对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:
TAB替换为空格:
:set ts=4
:set expandtab
:%retab!
 
空格替换为TAB:
:set ts=4
:set noexpandtab
:%retab!
加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。
 
VIM录制宏以及使用:
处理一个协议的数据,因为数据是通过串口抓取的,没有格式看起来很不方便,如果一直做重复的操作很累,忽然想起来了vim的宏,以前没有用过,上网查了下,确实很好用。
<1>qa:将录制的宏存入寄存器a
<2>操作
<3>q结束录制。
<4>@a:执行寄存器a的宏,次数为1次;@@使用最近录制的宏;7@a执行7次;100@a执行100次。
 

Linux编辑器vim中删除行尾的^M

  有时候,在 Linux 中使用打开曾在 Windows 中编辑过的文件时,会在行尾看到 ^M 字符。看起来总是感觉很别扭。

  删除方法如下:

  在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。

  注意: ^M 要用 Ctrl + v, Ctrl + m 来输入, 用键盘直接敲^和M是不行的! 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换--全局替换,否则只替换每行中匹配到的第一个。

  又脚本删除方法:

  cat file | col -b > file.1 // 这个可以去掉,但是生成文件里汉字变乱码

  sed -e 's/.$//g' file // 正确

  sed ‘s/^M//' file // 正确,但是 ^M = Ctrl + v, Ctrl + m

  附录:^M 另一个会出现的情况是文件在 windows 和 Linux 系统间通过 Ftp 传送。这是建议方法是:强行设定 ftp 方式为 ascii 方式就可以了啊! 当然也可以通过软件 dos2unix 搞定。

ctrl+a: number+1

ctrl+x:   number-1

原文地址:https://www.cnblogs.com/bugershang/p/2966128.html