微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim技巧

1 Vim的几种模式
正常模式:可以使用快捷键命令,或按:输入命令行。
插入模式:可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式。
可视模式:正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。
替换模式:正常模式下,按R进入。

  1. 启动Vim
    vim +num file: 从第num行开始;

  2. 文档操作
    :e file --关闭当前编辑的文件,并开启新的文件。 如果对当前文件修改未保存,vi会警告。
    :e#或ctrl+^ -- 回到刚才编辑的文件,很实用。
    :f或ctrl+g -- 显示文档名,是否修改,和光标位置。
    :f filename -- 改变编辑的文件名,这时再保存相当于另存为。
    gf -- 打开以光标所在字符串为文件名的文件
    :saveas newfilename -- 另存为

    :browse e -- 会打开一个文件浏览器让你选择要编辑的文件。 如果是终端中,则会打开netrw的文件浏览窗口; 如果是gvim,则会打开一个图形界面的浏览窗口。 实际上:browse后可以跟任何编辑文档的命令,如sp等。 用browse打开的起始目录可以由browsedir来设置:
    :set browsedir=last -- 用上次访问过的目录(认);
    :set browsedir=buffer -- 用当前文件所在目录;
    :set browsedir=current -- 用当前工作目录;

    :Sex -- 水平分割一个窗口,浏览文件系统;
    :Vex -- 垂直分割一个窗口,浏览文件系统;

4.2 翻屏
ctrl+f: 下翻一屏。
ctrl+b: 上翻一屏。
ctrl+d: 下翻半屏。
ctrl+u: 上翻半屏。
ctrl+e: 向下滚动一行。
ctrl+y: 向上滚动一行。
n%: 到文件n%的位置。
zz: 将当前行移动到屏幕中央。
zt: 将当前行移动到屏幕顶端。
zb: 将当前行移动到屏幕底端。

4.3 标记
m{a-z}: 标记光标所在位置,局部标记,只用于当前文件
m{A-Z}: 标记光标所在位置,全局标记标记之后,退出Vim, 重新启动,标记仍然有效。
{a-z}: 移动到标记位置。<br/>‘{a-z}: 移动到标记行的行首。<br/>{0-9}:回到上[2-10]次关闭vim时最后离开的位置。
:marks 显示所有标记

:delmarks a b -- 删除标记a和b。
:delmarks a-c -- 删除标记a、b和c。
:delmarks a c-f -- 删除标记a、c、d、e、f。
:delmarks! -- 删除当前缓冲区的所有标记。
:help mark-motions 查看更多关于mark的知识。

5.1 基本插入
i: 在光标前插入;一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。 这在插入分割线时非常有用,如30i+<esc>就插入了36个+组成的分割线。

插入位置的区别: 
    i:光标前   I 行首
    a:光标后   A 行尾
    o: 在下面新建一行插入;O: 在上面新建一行插入;

7.2 替换
:%s/old/new/g - 用new替换文件中所有的old。

:%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。
:%s/$/xxx/g - 在每一行的行尾插入xxx,$表示行尾。
所有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)。

8.1 基本排版
<< 向左缩进一个shiftwidth

向右缩进一个shiftwidth

9.1 一次编辑多个文件
我们可以一次打开多个文件,如 vi a.txt b.txt c.txt
使用:next(:n)编辑下一个文件
:2n 编辑下2个文件
使用:prevIoUs或:N编辑上一个文件
使用:args 显示文件列表。
vi -o filenames 在水平分割的多个窗口中编辑多个文件
vi -O filenames 在垂直分割的多个窗口中编辑多个文件

  1. 纵向操作ctrl-v后状态栏上出现 VISUAL BLOCK 字样,即进入纵向编辑模式。r 进入修改模式/I 进入行首插入模式/A 进入行尾插入模式Esc完成

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐