vim使用总结

1. vim 将文件从dos格式转换到unix格式

     vim file.txt
    :set fileformat=unix
    :w

2. 删除文本中的^M

    三种行尾格式如下:
    unix : \n
    dos : \r\n
    mac : \r
    这意味着,如果你试图把一个文件从一种系统移到另一种系统,那么你就有换行符方面的麻烦。

    因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下用Vim查看在Windows下写的代码,行尾后“^M”符号。
    在Vim中解决这个问题,很简单,在Vim中利用替换功能就可以将“^M”都删掉,键入如下替换命令行:
    :%s/^M//g

    注意:
    上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”键生成的,或者Ctrl+v,再按回车。

    或者使用这个命令:
    :% s/\r//g

3. vim中将tab转换成空格 

在vim中,有时需要将tab转换成space。使用ret命令(replace tab)。
[range]ret[ab]! [new-tabstop]

举例:将第一行到文件尾的tab转换成space,每个tab用4个space替代。
:set expandtab
:%ret! 4
如果没有给定4,则用当前的tab宽度设定替换为space。

其它相关命令:
:set tabstop=4        设定tab宽度为4个字符
:set shiftwidth=4     设定自动缩进为4个字符
:set expandtab        用space替代tab的输入
:set noexpandtab      不用space替代tab的输入

4. 删除指定行每行固定的前几个字符

    例如,从第3行到第10行,每行的前3个字符删除
    :3, 10s/^...//

5. gvim的配置
    http://blog.csdn.net/youyudehexie/article/details/7318029
    http://blog.chinaunix.net/uid-22322105-id-3083439.html

6. 显示历史命令
  q: 进入命令历史编辑


7. Visual模式下的拷贝,复制和粘贴
     参考:http://www.cnblogs.com/luosongchao/p/3193153.html
    进入vim中visual模式,visual模式进入,可以有三种方式:
   (1)在普通模式(normal)下,直接按键 v  就可以进入默认visual模式,可以使用j/k/h/l 进行文本选择
             对于选中的文本进行如下按键:

          (1.1)d   ------ 剪切操作

          (1.2)y   -------复制操作

          (1.3)p   -------粘贴操作

          (1.4)^  --------选中当前行,光标位置到行首(或者使用键盘的HOME键)

          (1.5)$  --------选中当前行,光标位置到行尾(或者使用键盘的END键)


 (2)Visual Line模式  按键V可以进入

            按键V之后,进入Visual Line模式,使用 j/k键可以选中一行或者多行

 (3)Visual Block模式,按键Ctrl + V可以进入

           按键Ctrl+V之后,进入Visual Block模式,使用 j/k/h/l键可以选中一块

注:

      在块模式下,可以进行多列的同时修改,修改方法是:

            首先进入块模式 Ctrl+ v

            使用按键j/k/h/l进行选中多列

            按键Shift + i 进行 块模式下的插入

            输入字符之后,按键ESC,完成多行的插入


8. vim tab 设置为4个空格
    在.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!


9. Vim拷贝格式错乱问题

有时候,复制文本(尤其是代码)到 Vim,会出现格式错乱的问题。看样子,应该是自动缩进惹得祸。本文不去深究原因,直接给出解决方法。

1. paste 模式

运行如下命令,进入 paste 模式:

:set paste

进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。但粘帖后还需要按 <ESC> 进入普通模式并执行如下命令结束 paste 模式:

:set nopaste

显然,这样非常麻烦。下面我们进行改进。

2. 快捷键一

我们可以利用设置快捷键来简化上面的两个命令。在 ~/.vimrc 中加入如下两行:

map <F10>:set paste<CR>map <F11>:set nopaste<CR>

这样,在普通模式下按 F10 (你也可以用自己喜欢的按键)就会进入 paste 模式,按 i 进入插入模式后粘帖,然后按 <ESC> 回到普通模式,再按 F11 结束 paste 模式。

这样虽然方便了,但占用了两个按键。下面我们继续改进。

3. 快捷键二

在 ~/.vimrc 中加入如下内容:

set pastetoggle=<F11>

这样就可以把上面的 F10 和 F11 合并为一个快捷键来切换 paste 模式了。

还有更好的办法么?当然!

4. Vim 寄存器一

关于 Vim 寄存器的详细信息请执行命令 “:help registers” 查看。

对于“剪切板”这个概念,Linux 下有两个东西:一个叫做选择缓冲区(X11 selection buffer),另一个才是剪切板(clipboard)。鼠标或键盘选择内容时,内容实时进入缓冲区,然后按中键将内容插入光标所在位置;鼠标或键盘选择内容后,按Ctrl-C(或Shift-Ctrl-C)或菜单中的“复制”,内容进入剪切板,然后按Ctrl-V(或Shift-Ctrl-V)或菜单中的“粘帖”将内容插入光标所在位置。关于这两者的详细信息,请自行搜索,此处不深究。

Vim 的寄存器 “* 对应系统缓冲区, 寄存器 “+ 对应系统剪切板。

如果你是把选择的内容(在系统缓冲区中)粘帖到 Vim ,只需在普通模式下执行如下命令:

"*p

对应的,如果你是把复制的内容(在系统剪切板中)粘帖到 Vim,只需在普通模式下执行如下命令:

"+p

怎么样?格式没有错乱了吧?

这样虽然简便很多了,但还是需要输入三个字母,并且这三个字母都得使用右手小拇指输入,甚至其中的两个字母还需要 shift 键配合!

还有更简单的办法。

5. Vim 寄存器二

在 ~/.vimrc 里加入如下内容:

set clipboard=unnamed

然后只需在普通模式下按 p 即可把系统缓冲区中的内容粘帖到 Vim 中,就像粘帖用 yy 命令得到的内容一样,并且格式不错乱。

如果把上面的一行换成如下内容:

set clipboard=unnamedplus

普通模式下按 p 粘帖的内容就是系统剪切板里的内容了。

这已经足够简便了。在搜索此问题的过程中,我还看到了另外一些办法。

6. 快捷键三

在 ~/.vimrc 里加入如下内容:

inoremap <S-Insert><ESC>:setl paste<CR>gi<C-R>+<ESC>:setl nopaste<CR>gi

这样,你就可以在插入模式下使用 Shift-Insert 快捷键在粘帖系统剪贴板中的内容了。

把上面一行替换成如下内容同样可以达到相同的效果:

inoremap <S-Insert><ESC>"+p`]a

注意,这可是在插入模式下哦!比起第 5 节提到的方法,这种方法省去了一次 <ESC> 按键进入普通模式和一次 i 按键重新回到插入模式。

至此,你需要做的只是:

  • a. 复制你想要的内容;

  • b. 回到 Vim 并按 Shift-Insert 快捷键;

  • c. 继续编辑其他内容。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值