如何使用vim来进行编辑文档和脚本
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来进行编辑文档和脚本相关推荐
- Ubuntu编辑文档和查看文档
编辑文档,进入到文档所在目录 sudo vim test.txt#编辑文档的内容 cat vim test.txt#查看文档的内容 1.编辑 进入vi/vim后按字母"i"或&qu ...
- [原创] Ubuntu 安装vim与中文帮助文档
Henry是没事儿在Windows下面玩的Vim,搬到Ubuntu上面之后感觉Vi用着特别别扭(尤其是剪切板上面的东西无法paste在Vi中...)于是乎...打算把Vi改装成Vim,这样也许就会好多 ...
- javadrawstring设置字符大小_LaTex学术写作——编辑文档格式 设置论文标题与摘要...
在上一篇文章中,我们介绍了如何安装LaTex以及开始创建文档的命令.今天我们就从学术写作的第一步开始讲起:如何编辑论文首页标题以及论文摘要.最近正在做论文重现的作业,我选取的论文是David Card ...
- 工具 左侧服务列表_协作办公时代,在线编辑文档工具,安排!
小组合作的工作,如果能够在线编辑就方便多了,小伙伴们有没有这样想过呢?今天叔白就给大家介绍一款能够在线编辑文档的工具,帮助大家提高工作效率,还想说一句,阿里出品的工具,真香! 语雀 「语雀」是一个文档 ...
- latex 编辑文档遇到的问题
编辑IEEE期刊下的文章 1. 问题一:File ended while scanning use of \@newl@bel. (出现在修改出现错误,但是回复后仍然不能运行) 解决方法:应该是运行时 ...
- Office 365 小技巧 :Microsoft Teams_ 就地编辑文档
Blog 地址:https://blog.51cto.com/13969817 Microsoft Teams 最大的特性是可以加强团队之间的协作能力,团队可以在同一个地方进行沟通和协作,并且与Mic ...
- Word不能编辑文档怎么办,文档修改了不能保存怎么办
Microsoft Word的用户几乎覆盖全球,是一个方便的办公软件,但是在使用word过程中我们难以避免一些问题,比如word文档不能编辑,word文档不能编辑了怎么办呢?word修改了无法保存怎么 ...
- 多人在线编辑文档 开发_腾讯文档,支持多人实时在线协同编辑
多年前,在港资公司工作需要多人协同编辑文档,用的是VPN+Google Docs,很早就体验过多人在线协同办公的便利,那时候,APP.微信,甚至智能手机,都没普及. 现在,就算没有VPN,用不了Goo ...
- 多人在线编辑文档 开发_十个在线小工具,科研amp;工作必备神器!
有的时候,做一些网页小工具比软件客户端要好用,客户端有时候出现问题,罢工不能用,而且有的软件还非常占用内存,安装起来可能要好几个小时,所以,小编今天给大家推荐了这些在线版的小工具,非常实用,想用就打开 ...
最新文章
- 富文本编辑_博客的后台富文本编辑和阅读计数
- html调用相机相册案例,Ionic 相册、相机调用
- qstudio c语言中文网,再整理:Visual Studio Code(vscode)下的通用C语言环境搭建
- hessian原理解析二(服务端分析)
- python3 32位_Python 3.6.8软件安装教程
- 使用Lucene的搜索服务器搜索Jira问题
- aix ntp 配置_aix下开启ntp服务
- 基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本
- 装linux系统为什么会黑屏_Ubuntu安装时出现黑屏问题的解决
- eclipse字体大小怎么设置
- RBF神经网络滑模控制
- 区块链电子证据的司法应用现状与展望
- JDK8 到 JDK17版本新增特性
- 叶俊:从佛说法制的十大好处谈到企业的制度与人情
- rust投递箱连接箱子_箱子、栈和堆
- 文件共享服务器onedrive,如何共享OneDrive文件和文件夹
- Javascript 脚本语言
- 堆(heap):先进先出,栈(stack)先进后出
- Codeforces Round #750 (Div. 2)E. Pchelyonok and Segments (数学+DP)
- python爬虫新浪微博
热门文章
- Help Hanzo(素数筛)
- 缓存加速-----Squid-访问控制列表日志分析反向代理
- ftp服务器在线编辑,ftp服务器上怎么直接修改office文档.
- 拨开零售电商数字化转型迷雾,电商RPA应用揭秘
- 自定义view仿写今日头条点赞动画
- 联筑赚赋能传统模架产业链数字化 促进产业发展互利共赢
- php mysql 插入图片_mysql中怎样插入图片
- U盘装系统,免设置bios(非pe镜像启动)
- 利用Nodemcu+Arduino nano+TB6612+点灯科技APP制作简易麦克纳姆轮Wi-Fi遥控小车
- R语言,向量x=c(“我“,“你“,“我“,“我“,“你“,“他“,“们“,“他“,“人“)中,统计向量x中的字出现的次数。 写出R代码。