vim的基本使用方法

头记:vim作为被大多数程序员所推崇的编辑器,是源于它的自由灵活以及令人舒服的输入模式,但对于新手来说无疑是个噩梦(需要记太多的命令),

而作为使用了vim有一段时间的我来说,总结下常用的命令,以备新手快速进入vim,感受它的强大以及令人着迷的处理方式。

以下只介绍常用的使用方式,对于繁重的概念以及高难度的操作留待大家以后的兴趣去探索。

初次用vi/vim打开文件既可以使用以下命令:

移动命令:

1.hjkl 四个按键对应左下上右,这四个按键是用来移动光标(同上下左右方向键),可以和数字组合使用如:nh (向左移动n步),其它方向同样。

2.wb 这两个按键是我最常使用的,分别代表向右向左移动一个单词的长度。

3.gg 和 G 其中gg是移动到第一行,G移动到最后一行。

4.nG 移动到第n行。

还有很多的移动命令如:H L ...

插入文本:

1.iao 这三个按键对应这三种不同的插入方式,i在光标前插入(默认光标为方块),a则是在光标后插入,o为新起一行并进入插入模式.还有其它的如:O向光标的上面插入新行并进入插入模式.

按esc可以进行移动命令

选择文本:

1.v 按v进入选取模式从当前光标开始,之后移动光标即可进行选取。

2.V 按V直接选取一行,后续步骤同上。

3.ctrl + v 这个可以说是vi中非常好用的选取器了,可以进行块选择,后续同样可以使用hjkl或者wb来进行块的选取。

文本的剪贴,复制,粘贴以及撤销:

1.对上边选择的文本可以使用d剪贴,y复制。

2.dd 剪贴当前行也可以使用ndd剪贴从当前开始的n行。

3.yy 复制当前行,也可以使用nyy 同上。

4.p 粘贴剪贴的内容或者复制的内容,一般会保留原格式粘贴,即用dd或者yy则粘贴到下一行,进行文本局部选取粘贴会在当前行。

5.P 向上粘贴,格式同上。

6. u 撤销上一次操作。ctrl + r 与u操作相反。

相对高级一点的复制和粘贴:(但是非常有用)

vi/vim中内置有很多的寄存器,供分别使用.

1. "ayy 保存当前行在a寄存器中,"anyy 复制n行到a寄存器或者"any 按回车。寄存器从a-z,0-9非常之多。

2. +这两个寄存器为系统剪贴板,可以复制内容到剪贴板供外边使用,使用同上如:"+yy。

3."ap 粘贴a寄存器中的内容,其它的也一样。

搜索模式:

1. / 向下搜索 如: /test 搜索test 可以使用vim中的正则,使用n移动到下一个搜索到的词,N移动到上一个搜索到的词。

2. ? 同上,只是使用n是向上搜索,N向下。

加入书签:

1.m 如:mk在当前行加入标签k 使用`k(注意是esc下的`)跳到k标记处。

命令模式:

可以说命令模式是vim的核心了,至少我现在使用时就是这种感觉。

(后续匹配文本都可以使用vim中的正则进行选定,这里不介绍,以免增加使用难度,不过建议好好了解下正则)

1. :%g/需要匹配的内容/d 这条命令删除整个文件中匹配到内容的所有行,其中%号代表的是进行全文本匹配,也可以使用{n,m}g//d表示从n开始到m结束,n与m都可以省略,默认即从当前行开始。

2. :s/需要匹配的文本/替换的文本/g 这条命令用来进行替换匹配到的文本,方法同上。

3. :s/\(匹配到的文本\)/插入的内容\0/g 这条命令与前边命令不同之处在于用()把需要匹配的文本括起来,后边则可以使用\0进行还原,实现插入操作,如分别括起来多个,则可以使用\1以此类推。

4. :!cd /home 这条命令的意思是调用linux系统下bash中的cd命令,并切换到家目录,可以使用:!ls -l显示当前工作目录下的文件信息。

5. :reg 查看vim中寄存器的内容,可以随时查看寄存器中的内容。

5 :h 调出帮助文件,非常有用。

文本文件的保存:

1. :w 修改的内容写入原文件(vim编辑时会生成.swap临时文件)。

2. :q 退出而不保存。

3. :wq 保存并退出。

4. :w! 强制写入,退出命令也可以使用。

5. :x 如果有改变则写入,否则退出。(最常使用)

vi多屏:

1. :sp 以横屏的模式显示另外一个文件。:vsp 以竖屏的方式显示。:ex 切换到其它文件当前文件消失。

2. ctrl+w 在两个文件切换。

vi合并其它文件:

1. :r path 把path文件追加到光标后。

附上vim替换操作以及正则:

一、正规表达式:

替换命令: s///g 下边的命令可以组合起来使用

无 : 只对指定范围内的第一个匹配项进行替换

g : 对指定范围内的所有匹配项进行替换

c : 在替换前请求用户确认

e : 忽略执行过程中的错误

二、元字符:

. : 匹配任意一个字符

[abc] : 匹配方括号中的任意一个字符。可以使用-表示字符范围。

[^abc] : 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。

\d : 匹配阿拉伯数字,等同于[0-9]

\D : 匹配阿拉伯数字之外的任意字符,等同于[^0-9]

\x : 匹配十六进制数字,等同于[0-9A-Fa-f]

\X : 匹配十六进制数字之外的任意字符,等同于[^[0-9A-Fa-f]

\w : 匹配单词字母,等同于[0-9A-Za-z]

\W : 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z]

\t : 匹配<TAB>字符

\s : 匹配空白字符,等同于[ \t]

\S : 匹配非空白字符,等同于[^ \t]

*特别注意:如果需要查找元字符则需要\跳出

表示数量的元字符

* : 匹配0-任意个

\+ : 匹配1-任意个

\? : 匹配0-1个

\{n,m} : 匹配n-m个

\{n} : 匹配n个

\{n,} : 匹配n-任意个

\{,m} : 匹配0-m个

表示位置的符号

$ : 匹配行尾

^ : 匹配行首

\< : 匹配单词词首

\> : 匹配单词词尾

如有错误之处欢迎指出。

转载于:https://www.cnblogs.com/sundaysgarden/p/10538863.html

vim的基本使用方法相关推荐

  1. vi/vim的基本使用方法

    vi/vim 基本使用方法 本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的 ...

  2. Vi/Vim查找替换使用方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  3. vim折叠的使用方法

    :  set  foldmethod=manual 然后输入zfap就ok了 如图所示: 但仍然不够随意定制,有没有更好的办法呢? 目前非常喜欢: foldmethod需要置于manual模式下:se ...

  4. [转]Vi/Vim查找替换使用方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  5. vi/vim 查找替换使用方法

    http://wzgyantai.blogbus.com/logs/28117977.html vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记 ...

  6. linux vi查找字符串查找字符串,vim查找字符串的方法_vim查找替换的方法

    vim是什么? Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.VIM是自由软件. Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自 ...

  7. vim查找替换的方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian 为 s ...

  8. Ubuntu中Vim 中文乱码解决方法

    添加中文字符编码 sudo vim /var/lib/locales/supported.d/local 添加下面的中文字符集支持 zh_CN.GBK GBK zh_CN.GB2312 GB2312 ...

  9. linux下vim编辑器快速掌握方法

    学习vim时,没有比vimtutor更好的入门教材了,输入vimtutor命令后剩下的就是跟着说明操作,整个过程不需要死记硬背,它会非常应景地告诉你应该怎么使用vim,并且全程给出了模拟演练的环境.本 ...

最新文章

  1. 我的第一个web_登陆我的第一个全栈Web开发人员职位
  2. view 注册服务器,view服务器ip地址
  3. 根据图片获得配色方案_配色系列(1)—从图片中获得配色灵感
  4. java 字节输出流_Java IO详解(三)------字节输入输出流
  5. 循环删除List集合的错误
  6. SpringBoot入门之简单配置
  7. Python十进制转十五进制
  8. ppsspp模拟java按键_ppsspp 手柄按键映射 北通 BTP
  9. Hadoop-RPC底层实现与解析
  10. Spring基于注解管理bean(一文搞懂注解及使用注解)
  11. 电音风靡全球,不了解一下吗?
  12. head first JavaScript pdf 下载
  13. 微信公众号支付java_微信公众号支付开发全过程(java版)
  14. 自建电驴服务器,电驴服务器怎么连接 eMule连接服务器教程
  15. 【依赖高精度点云地图和三维激光雷达的定位方案】正态分布变换(NDT)定位及建图
  16. MIT6.824-lab2A-2022篇(万字推导思路及代码构建)
  17. datadog ebpf模块 offset-guess.o 问题排查解决
  18. sql给数据库表字段进行首字母排序(字符、数字、英文)(两种方式)
  19. 动环监控系统的服务器部署在,动环监控系统【斯必得智慧机房】
  20. 从滴滴到AirBnB,交易平台战争的秘密

热门文章

  1. (Java集合框架)Map集合
  2. 面向对象中的session版的购物车
  3. 程序员修炼之路:你该知道的 7 个必经阶段
  4. 如何通过 Serverless 轻松识别验证码?
  5. Kubernetes 入门必备云原生发展简史
  6. 重庆三峡学院计算机应用技术,重庆三峡学院 数学与计算机学院 刘福明老师简介 联系方式 手机电话 邮箱...
  7. Jmeter之断言操作
  8. 辞九门回忆用计算机,辞九门回忆(单轨,曲速70,适合UTAU调教;midishow首发)...
  9. echartsx轴按当前时间自动移动 vue_FANUC系统如何追加第四轴?
  10. 惠普的服务器改win7系统,惠普(HP)笔记本预装Win8改Win7系统BIOS设置教程