1.vim模式介绍

vim会有4种常见的模式,分别为普通模式、命令模式、插入模式、可视模式。

普通模式:利用vim打开某个文件时,即进入普通模式。

普通模式转为命令模式,使用 “:”。

普通模式转为插入模式,在键盘上输入以下字母:"i,I,a,A,o,O"中任意一个。

普通模式转为可视模式,在键盘上输入字母:“V”,注意是大写。

命令模式、插入模式、可视模式转为普通模式,键盘上按下"Esc"按键。

2.常用命令

2.1 普通模式
2.1.1 移动光标:
按键 按键功能
k或向上箭头 向上移动光标
j或向下箭头 向下移动光标
h或向左箭头 向左移动光标
l或向右箭头 向右移动光标
gg 文件首行的行首
GG 文件尾行的行首
ngg 移动到第n行的行首
2.1.2 删除操作:

注意,删除时会将文本内容进行缓存,然后通过粘贴,实现剪切功能。

按键 按键功能
x 删除光标处的一个字符
dd 删除光标处的所在行
ndd 删除从光标所在行开始的n行(包含光标行),1dd等于dd
dw 删除从光标位置开始的一个单词
d$ 删除从光标处到该行行尾的字符
d^ 删除光标处到该行行首的字符
dG 删除光标行到行尾的所有行
dnG 删除从光标行到第n行(包含第n行)
2.1.3 复制:
按键 按键功能
yy 复制光标所在行
y$ 复制从光标处到该行行尾的字符
y^ 复制从光标处到该行行首的字符
nyy 复制从光标所在行开始的n行(包含光标行),1yy等于yy
yG 复制从光标行到行尾的所有行
ynG 复制从光标行到第n行(包含第n行)
2.1.4 粘贴:
按键 按键功能
p 将复制的内容粘贴到光标所在行的下一行(小写,地位低,居下方)
P 将复制的内容粘贴到光标所在行的上一行(大写,地位高,居上方)
2.1.5 替换:
按键 按键功能
r 替换光标处的一个字符
R 从光标处开始往后连续替换
cc 替换光标所在行
c$ 替换光标处到该行行尾
c^ 替换光标处到该行行首
cG 替换从光标行到行尾
cnG 替换从光标行到第n行(包含n行)
2.1.6 可视块操作:
按键 按键功能
u 撤销(返回上一步)
ctrl+r 重做,与u操作相反
ctrl+v 对可视化块进行批量操作
ctrl+v,选取区块,x 批量删除
ctrl+v,选取区块,shift+i,输入内容,Esc 批量编辑
2.2 命令模式
2.2.1 文件的保存和退出:
按键 按键功能
:w 保存
:q 退出
:wq 保存并退出
:x 保存并退出
:wq! 强制保存并退出
:q! 不保存并退出
2.2.2 显示文件名称,切换文件:

:args,显示该文件的名称

2.2.3 编辑某文件时,新打开1.txt:

:e 1.txt

2.2.4 将正在操作的文件另存为~/2.txt:

:saveas ~/2.txt

2.2.5 切分窗口
按键 按键功能
:split 上下分屏
:nsplit 1.txt 打开一个高度为3的窗口,并打开1.txt
:vsplit 左右分屏

可以利用ctrl+w将光标在各窗口之间进行切换

:qa! 或 :qa ,可退出所有窗口。

2.2.6 字符串替换
按键 按键功能
:%s/old_string/new_string 全局替换
: s /old_string/new_string 替换光标所在行
: n, $s /old_string/new_string 替换第 n行开始到最后一行中的第一个old_string
: n,$s /old_string/new_string/g 替换第n行开始到最后一行的所有old_string
2.2.7 跳转到某一行

:n,跳转到第n行

2.2.8 设置选项

:set,设置选项

:set nonu,不显示行号

:set nu,显示行号

具体设置情况,可在~/.vimrc文件中进行查看和设置,从而使配置永久生效。

2.3 插入模式
按键 按键功能
i 在光标前插入
I 在光标所在行的行首插入
a 在光标后插入
A 在光标所在行的行尾追加
o 在光标所在位置的下一行打开新行插入
O 在光标所在位置的上一行打开新行插入
2.4 可视模式
按键 按键功能
v 每次选择一个字符
V 每次选择一行
ctrl+v 批量编辑,详见2.1.6
gv 重选上一次的高亮区
选中后,按下d 删除所选中部分
选中后,按下D 删除所选中部分所在的行
选中后,按下v 复制选中的部分
选中后,按下V 复制所选中部分的所在行
选中后,按下c或C 删除所选中部分(选中部分所在行),并切换到输入模式
选中后,按下J 将选中部分合并为一行
选中后,按下r 将选中的部分的每个字符替换为新字符

3.其他技巧

3.1 操作技巧
按键 按键功能
普通模式下ctrl+z 将编辑的文档挂起
普通模式下 /search_string 在文档中查找某些字符串,n向下查找,N向上查找

文档挂起后:在终端输入jobs,可以查看所有挂起的文档;在终端输入fg %n,可以进入某个挂起的文档进行编辑;在终端输入fg,可以快速进入最后一个标记挂起(前面有+)的文档中。

3.2 提升技巧
3.2.1 内置的训练模式

在终端输入 vimtutor(英文模式) 或vim zh(汉化模式)

3.2.2 其他

可以在终端中,可以输入man vim ,查看在线手册。

3.3 常用命令举例

#3显示行号和不显示行号
set nu
set nonu
#取消高亮显示
:nohl

如何使用vim来进行编辑文档和脚本相关推荐

  1. Ubuntu编辑文档和查看文档

    编辑文档,进入到文档所在目录 sudo vim test.txt#编辑文档的内容 cat vim test.txt#查看文档的内容 1.编辑 进入vi/vim后按字母"i"或&qu ...

  2. [原创] Ubuntu 安装vim与中文帮助文档

    Henry是没事儿在Windows下面玩的Vim,搬到Ubuntu上面之后感觉Vi用着特别别扭(尤其是剪切板上面的东西无法paste在Vi中...)于是乎...打算把Vi改装成Vim,这样也许就会好多 ...

  3. javadrawstring设置字符大小_LaTex学术写作——编辑文档格式 设置论文标题与摘要...

    在上一篇文章中,我们介绍了如何安装LaTex以及开始创建文档的命令.今天我们就从学术写作的第一步开始讲起:如何编辑论文首页标题以及论文摘要.最近正在做论文重现的作业,我选取的论文是David Card ...

  4. 工具 左侧服务列表_协作办公时代,在线编辑文档工具,安排!

    小组合作的工作,如果能够在线编辑就方便多了,小伙伴们有没有这样想过呢?今天叔白就给大家介绍一款能够在线编辑文档的工具,帮助大家提高工作效率,还想说一句,阿里出品的工具,真香! 语雀 「语雀」是一个文档 ...

  5. latex 编辑文档遇到的问题

    编辑IEEE期刊下的文章 1. 问题一:File ended while scanning use of \@newl@bel. (出现在修改出现错误,但是回复后仍然不能运行) 解决方法:应该是运行时 ...

  6. Office 365 小技巧 :Microsoft Teams_ 就地编辑文档

    Blog 地址:https://blog.51cto.com/13969817 Microsoft Teams 最大的特性是可以加强团队之间的协作能力,团队可以在同一个地方进行沟通和协作,并且与Mic ...

  7. Word不能编辑文档怎么办,文档修改了不能保存怎么办

    Microsoft Word的用户几乎覆盖全球,是一个方便的办公软件,但是在使用word过程中我们难以避免一些问题,比如word文档不能编辑,word文档不能编辑了怎么办呢?word修改了无法保存怎么 ...

  8. 多人在线编辑文档 开发_腾讯文档,支持多人实时在线协同编辑

    多年前,在港资公司工作需要多人协同编辑文档,用的是VPN+Google Docs,很早就体验过多人在线协同办公的便利,那时候,APP.微信,甚至智能手机,都没普及. 现在,就算没有VPN,用不了Goo ...

  9. 多人在线编辑文档 开发_十个在线小工具,科研amp;工作必备神器!

    有的时候,做一些网页小工具比软件客户端要好用,客户端有时候出现问题,罢工不能用,而且有的软件还非常占用内存,安装起来可能要好几个小时,所以,小编今天给大家推荐了这些在线版的小工具,非常实用,想用就打开 ...

最新文章

  1. 富文本编辑_博客的后台富文本编辑和阅读计数
  2. html调用相机相册案例,Ionic 相册、相机调用
  3. qstudio c语言中文网,再整理:Visual Studio Code(vscode)下的通用C语言环境搭建
  4. hessian原理解析二(服务端分析)
  5. python3 32位_Python 3.6.8软件安装教程
  6. 使用Lucene的搜索服务器搜索Jira问题
  7. aix ntp 配置_aix下开启ntp服务
  8. 基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本
  9. 装linux系统为什么会黑屏_Ubuntu安装时出现黑屏问题的解决
  10. eclipse字体大小怎么设置
  11. RBF神经网络滑模控制
  12. 区块链电子证据的司法应用现状与展望
  13. JDK8 到 JDK17版本新增特性
  14. 叶俊:从佛说法制的十大好处谈到企业的制度与人情
  15. rust投递箱连接箱子_箱子、栈和堆
  16. 文件共享服务器onedrive,如何共享OneDrive文件和文件夹
  17. Javascript 脚本语言
  18. 堆(heap):先进先出,栈(stack)先进后出
  19. Codeforces Round #750 (Div. 2)E. Pchelyonok and Segments (数学+DP)
  20. python爬虫新浪微博

热门文章

  1. Help Hanzo(素数筛)
  2. 缓存加速-----Squid-访问控制列表日志分析反向代理
  3. ftp服务器在线编辑,ftp服务器上怎么直接修改office文档.
  4. 拨开零售电商数字化转型迷雾,电商RPA应用揭秘
  5. 自定义view仿写今日头条点赞动画
  6. 联筑赚赋能传统模架产业链数字化 促进产业发展互利共赢
  7. php mysql 插入图片_mysql中怎样插入图片
  8. U盘装系统,免设置bios(非pe镜像启动)
  9. 利用Nodemcu+Arduino nano+TB6612+点灯科技APP制作简易麦克纳姆轮Wi-Fi遥控小车
  10. R语言,向量x=c(“我“,“你“,“我“,“我“,“你“,“他“,“们“,“他“,“人“)中,统计向量x中的字出现的次数。 写出R代码。