博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vim的基本操作
阅读量:5286 次
发布时间:2019-06-14

本文共 2589 字,大约阅读时间需要 8 分钟。

vim的基本操作
  • 启动vim
    在终端中输入命令:vim在终端界面或者是gvim独立出来一个窗口。
  • 文本输入
    在正常模式下输入字符“a”或者是“i”进入文本编辑模式。
  • 文件保存
    文本输入完毕后按下Esc键,进入正常模式,然后输入冒号“:”,接下来输入“w test.txt”,这样就能将内容写入到test.txt中去。
  • 退出vim

    进入命令行模式
    输入“:wq”即为保存并退出;
    输入“:q”即为退出;
    输入“:wq test.txt”即为将内容写入到test.txt并保存退出;

    vim常用的命令

    vim设计之初宗旨在于只用键盘操作就可以快速完成vim所有的操作,因此vim命令众多。以下是vim较为常用的部分命令(以下命令在正常模式下输入,前缀带有冒号的命令表示命令模式下执行
  • 进入vim
  • vim,启动vim
  • vim 文件名,启动vim并打开或者新建文件

    ###光标移动

    1、移动

    h,向左移动一个字符

    l,向右移动一个字符
    j,向下移动一行
    k,向上移动一行

    2、行首行尾

    0或,移动到行开始(注意是数字0)

    $或,移动到行尾
    ^,移动到当前行的第一个非空白字符上
    g_,移动到当前行的最后一个非空白字符上

    3、移动词首尾

    w,移动到下个单词的词首

    b,移动到上个单词的词首
    e,移动到下个单词的词尾
    ge,移动到上个单词的词首

    4、跳转指定行

    nG,跳转到指定的第n行

    gg,跳转到第一行

    5、屏幕适应

    G,跳转到最后一行

    M,跳转到当前屏幕的中间一行
    L,跳转到当前屏幕的尾行
    ZZ,将当前行放到屏幕中央

    搜索

    1、单字符

    fx,在当前行上查找下一个字符x

    Fx,在当前行上查找上一个字符x

    2、字符串

    /,向下搜索。先键入/,再输入想要搜索的字符串,然后回车。.[]^%/?~$这些具有着特殊的意义,如果想要搜索这些字符本身,需要在前面加上反斜线 /,向上搜索。先键入?,再输入想要搜索的字符串,然后回车。.[]^%/?~$这些具有着特殊的意义,如果想要搜索这些字符本身,需要在前面加上反斜线 ####3、Word

    将光标置于Word上,*代表向后查找,#代表向前查找
    vim搜索到的字符一般处于高亮状态,如果你想跳到下一个匹配的字符串,键入n,如果是跳到上一个则是N。
    /<word>,只查找word这个单词- /<word>,只查找word这个单词

    移动到匹配的括号上

    %,默认的匹配括号包括三种:()[]{}。当多层次时能够迅速匹配,如果想加入新的匹配符号"<>",可以做如下命令:set mps+=<:>

跳转到修改点

'.,跳到最后修改的那一行

.**,跳到最后修改的那一点 **gd**,跳转到文件第一次出现的地方,通常是变量定义的地方 **ma**,用字母a标记当前光标所在的位置,这里a可以是任意字母 **a,跳转到a处
``,跳转到上一次光标所在处

vim中基本的编辑命令形式:编辑命令+作用范围

删除:d 复制:y 改变:c(改变的含义为删除并进行插入)

删除

1、行

dd,删除当前行,3dd删除3行

dw,删除光标所在位置到下一个字的第一个字母(包括空格)
cw,删除光标所在位置到下一个字的第一个字母(不包括空格)
dfx,删除光标所在位置到本行中下一个字符x出现的位置

2、单词

daw,删除一个单词(包括词尾空格)

diw,删除一个单词(不包括词尾空格)

3、话

das,删除一句话

4、字符

x,删除当前光标下的字符

nx,删除光标后n个字符,例如3x
nX,删除光标前n个字符,例如3X

复制/粘贴

nyy,将当前n行放入缓冲区

yy,复制一整行
p,将缓冲区的内容放到当前行下面
P,将缓冲区的内容放到当前位置的上面

撤消/重做

u,恢复上一条命令

.,重复一条命令

替换 [range]substitute/from/to/[flags]

1、利用命令行进行选中范围的替换

“-”代表当前行;“$”代表最后一行;“%”代表对所有的进行操作,如果不指定范围,则只替换本行的对象

“+-”相对偏移量,例如:与其等价的描述是在当前行键入“5:”,在vim的左下角就会出现等价的描述“.,.+4”,含义为表示从当前行下到当前行的第5行这个范围内进行替换操作。
substitute/from/to 可以用s来替换
flags 这个附加参数包括i(不区分大小写)g(替换一行中所有符合的字符串)p(列出所有被改变的行)c(在执行每个替换前都要求用户确认) 如果不指定参数,那么只替换一行中第一次被发现的目标字符串
:s/p1/p2/g,将当前行中所有p1均用p2替换
%s/p1/p2/,将当前所有的文本进行替换
:n1,n2s/p1/p2/g,将第n1行至n2行中所有的p1均用p2替换
:.,.+4s/p1/p2/g,将光标所在的当前行直至当前行的下面4行中所有的p1均用p2替换
:g/p1/s//p2/g,将文件中所有的p1均用p2替换

2、字符替换

ra,用字母a替换当前光标下的字符

R,可以实现多字符替换,其实也就是shift+r键

大小写转化

visual下,键入hjkl选中区域

U,小写变大写
u,大写变小写
U,小写变大写- U,小写变大写
--------

单词补齐

Ctrl - p 插入模式下进行单词补齐(向前查找单词)

Ctrl - n 插入模式下进行单词补齐(向后查找单词)
---------

折叠

  • normal模式下,移到所要的行,键入zf18j(折叠光标以下18行)
  • visual模式下,用jklh选中要折叠的文本,键入zfzo,打开折叠;zr,打开所有折叠;zc,关闭折叠,zm,关闭所有折叠

    对齐

    左对齐:{range}left[margin],range是需要进行对齐的行范围,margin是对齐后的行首距离窗口最左边的距离。例::90,100 left 0 左对齐

    右对齐:{range}right[width],range是需要进行对齐的行范围,width是对齐后每行的长度

    保存文件

    :w,存盘

    :w 文件名,存盘至文件

    退出vim

    :q,退出

    :wq,保存退出
    :q!,强制退出

转载于:https://www.cnblogs.com/xuqing125/p/9483450.html

你可能感兴趣的文章
虚拟DOM,真实的JS对象,操作内存中的js对象要比操作DOM节省性能?
查看>>
拓扑排序-hihocoder1175
查看>>
encodeURIComponent与URLDecoder.decode用法
查看>>
LinkedList 和 ArraryList的区别. <java>
查看>>
大数据学习大纲,大数据应该怎么学
查看>>
HTTP协议学习笔记
查看>>
sublime 打开命令窗口监控
查看>>
ubuntu16.04降级内核版本至3.13.0-85
查看>>
Junit中的异常测试
查看>>
九度OJ 1038:Sum of Factorials(阶乘的和) (DP、递归)
查看>>
DRF之分页器组件
查看>>
JS中this的用法
查看>>
高频交易算法研发心得--MACD指标算法及应用
查看>>
python读写文件
查看>>
使用Visual Studio 2013进行单元测试--初级篇
查看>>
花式索引
查看>>
用python正则提取字符串的方法
查看>>
NHibernate系列学习(三)-条件查询Criteria
查看>>
C++11并发——多线程std::mutex (二)
查看>>
vue router
查看>>