首页 > 其他分享 >vim:用法

vim:用法

时间:2023-07-13 11:11:42浏览次数:40  
标签:字符 末行 模式 用法 命令 vim 光标

学习自:Linux vi/vim

vim使用教程图文教程(零基础超详细)

1、何为vim

vim是从vi发展而来的一种文本编辑器,是一种程序开发工具。具有代码补全、编译、错误跳转方便编程的功能

vim官网:https://www.vim.org/

2、vim键盘图

3、vim模式

vim有3种模式:

  • 命令(Command):该模式下敲击键盘会被识别为某个指令
  • 输入(Insert):输入、编辑文本;
  • 末行(Last Line):也是一种命令模式

模式进入与转换

 

1)命令模式

①如何进入

刚刚启动vim时进入的就是vim模式。

输入、末行模式下按ESC进入命令模式。

②常用的命令

  • i a o:切换到输入模式
  •  :切换为末行命令模式。
  • :wq :保存并退出
  • x:删除光标所在处的字符
  • u:后退一步(相当于CTRL+Z)
  • CTRL+R:前进一步(相当于CTRL+Y)
  • .:重复前一个动作(相当于再执行一次前一个动作)

命令模式只有一些最基本的命令,而末行命令模式可以输入更多命令。

③其他一些指令(有:的说明是在末行模式下)

命令模式下的数字,代表指令重复次数

移动光标

h ← 左移一个字符
j ↓
k ↑
l →

数字+方向

例如:30h 30←

向指定方向移动指定数量的光标
CTRL+ F 或 Page Down 下移一页
CTRL + B 或 Page Up 上移一页
CTRL + D 下移半页
CTRL + U 上移半页
+ 移动到下一行(该行第一个非空格符(Space)之后)
- 移动到上一行(该行第一个非空格符(Space)之后)
数字+空格(space) 右移指定光标(区别于数字+→,这里可以跨行)
0或HOME 移动至该行首
$或END 移动至该行末尾
H(Head) 移动至屏幕最上方那行行首
M(Median) 移动至屏幕中间那行行首
L(Last) 移动至屏幕末尾行行首
G 移动至文档末尾
数字+G 移动至文档第几行
GG 移动至文档首行,相当于1G
数字+ENTER 光标下移n行(等同步于 数字+↓+ENTER)

查找

/word 光标之下查找所有word
?word 光标之上查找所有word
n 重复上一次查找结果,并向下移动至下一个查找到的word字符首
N 重复上一次查找结果,并向上移动至下一个查找到的word字符首
使用/word + n/N可以实现不停地向上/向下定位到某个想要字符处

替换

:n1,n2s/word1/word2/g

在n1和n2行(这两行都包含)之间查找word1,并将其替换为word2。

:100,200s/vbird/VBIRD/g

 

:1,$s/word1/word2/g

:%s/word1/word2/g

从首行到尾行查找word1,并将其替换为word2

:1,$s/word1/word2/gc

:%s/word1/word2/gc

从首行到尾行查找word1,并将其替换为word2。

但在替换前会让用户确认

删除、剪切

x或DEL 删除光标后的字符
X或BACKSPACE 删除光标前的字符
数字+x 连续删除若干个光标后的字符
dd 剪切光标所在行
数字+dd 剪切光标后若干行
d1G 删除光标到首行所有行
dG 删除光标到末行所有行
d$ 删除光标到该行末尾所有字符
d0 删除光标到该行行首所有字符

复制、粘贴

yy 复制光标所在行
数字+yy 复制光标向下若干行
y1G 复制光标行至首行的所有行
yG 复制光标行至尾行的所有行
y0 复制光标至该行行首所有数据
y$ 复制光标至该行行尾所有数据
p 粘贴在光标下一行(不会覆盖该行)
P 粘贴在光标上一行(不会覆盖该行)
J 合并光标及下一行为一行
cc 清空某行字符,并在该行进入编辑模式
C 清空光标至该行尾的字符,并在光标处进入编辑模式

切换编辑模式

(切换后左下角会出现INSERTREPLACE字样)

i 从光标处输入
I 从光标行首第一个非空格字符处输入
a 从光标后一个字符处输入
A 从光标行尾处输入
o 在当前光标下一行输入新的一行
O 在当前光标上一行输入新的一行
r replace模式,替换光标处的字符
R replace模式,一直替换下去,直到按ESC
ESC 退出编辑模式

切换至末行模式

(此时命令会跳转到最后一行,并以:开始)

存储文件、离开退出

:w 将编辑的文件写入硬盘中
:w! 强制写入(用于只读模式)
:q 离开vi
:q! 强制离开(不保存档案)
:wq 存储后离开
:wq! 强制存储后离开(等同于按CTRL Z)
!代表强制
ZZ 保存文件(如果修改过)并退出
ZQ 不保存并强制退出
:w 文件名 另存为新文件
:r 文件名 读入另一个文件,以追加的形式加入当前光标行之后
:n1,n2 w 文件名 将行n1至n2间的内容另存为新文件
:! 命令

暂时离开末行模式,到命令模式执行命令显示结果

vim环境变更

:set nu 显示所有行号
:set nonu 取消行号

 

2)输入模式

①如何进入

在命令模式下按i、a、o进入命令模式

②按键

  • 常规字符及SHIFT组合:输入字符
  • ENTER:换行
  • BACKSPACE←:删除(光标处)单个字符
  • DEL:删除光标后的单个字符
  • ↑↓←→:移动光标
  • HOME/END:移动光标至行首/行尾
  • Page Up/Page Down:翻页
  • Insert:切换为替换模式,此时会覆盖文本而不是插入
  • ESC:切换到命令模式

3)末行命令模式

①如何进入

命令模式下按:(英文冒号)进入末行命令模式;

②与命令模式区别

末行命令模式可以输入单个/多个字符命令,因此可用命令更多

③基本命令(这些命令不一定要写到多行,可以写到同一行,每多一个字符就代表多一个指令和功能)

  • q:退出程序
  • w:保存文件
  • wq:保存并退出
  • ESC:退出末行命令模式

4、用法

1)创建/进入文件,并进入命令模式

①指令

  • vim 文件:打开指定文件

    vim /test/a.txt 

     

  • vim +n 文件:打开指定文件,移动至第n行(+号是语法,不能省略)
    vim +3 /test/a.txt

     

  • vim +/关键字  文件:打开指定文件,并高亮关键字
    vim +/root /test/a.txt

     

②示例

vim test.txt

 

初始页面

 

2)编辑模式

①指令

  • 进入

在命令模式下按i,a,o进入编辑模式,此时左下角状态栏出现INSERT字样。

 此时除了ESC,其他按键都视为一般输入按钮

 

  • 回到命令模式:ESC

  • 保存并退出:在命令模式下输入 :wq(其实就是末行模式下输入wq)

 

标签:字符,末行,模式,用法,命令,vim,光标
From: https://www.cnblogs.com/ShineLeBlog/p/17539898.html

相关文章

  • 怎么让vim执行python在conda中 来解决一个具体问题的方案
    怎么让vim执行python在conda中问题描述在使用vim编辑器进行Python编程时,我们可能会遇到使用conda环境时无法直接执行python代码的问题。这是因为vim默认使用系统的Python环境,而不是我们使用conda创建的环境。因此,我们需要找到一种方法来让vim能够在我们指定的conda环境中执行Pyth......
  • sh脚本:trap "kill -- -$$" EXIT和exec的用法
    linux环境下,在sh脚本中启动了一个javav程序,ctrl+c结束程序时,未能正常结束另一个程序。为了解决上述问题,可以在sh中添加trap"kill---$$"EXIT  或使用exec执行java程序。trap"kill---$$"EXIT:功能:该命令用于设置一个信号处理程序,当脚本退出时执行特定命令......
  • 统计平台广告推送工具支持百度、51拉、CNZZ 用法详解
    此软件用于伪造站长统计的搜素关键词,可以模拟百度、360、搜狗等搜索引擎来路 支持自定义刷词次数、多线程支持自定义线程数,速度更快 支持指定网址推广,带来更精确的网站IP来路 一键导入几十万个网站,支持TXT文件导入一行一个网址即可 5.8版界面预览: 可以模拟电脑......
  • Java中Timer的用法
    用法很简单,new一个timer,然后写一个timertask的子类即可。代码如下:packagecomz.autoupdatefile;importjava.util.Timer;importjava.util.TimerTask;publicclassM{publicstaticvoidmain(String[]args){//TODOtodo.generatedbyzoe......
  • 详解nvim内建LSP体系与基于nvim-cmp的代码补全体系
    2023年,nvim以及其生态已经发展的愈来愈完善了。nvim内置的LSP(以及具体的语言服务)加上众多插件,可以搭建出支持各种类型语法检查、代码补全、代码格式化等功能的IDE。网络上关于如何配置的文章很多,但本人发现绝大多数的文章仅仅停留在配置本身,没有深入的解释这些插件的作用和它们之......
  • Vim搜索关键字
    Vim搜索关键字原文链接:https://cloud.tencent.com/developer/article/2157398大家好,又见面了,我是你们的朋友全栈君。有以下两种方法Method1:/content默认从上往下查找只读模式下输入/content后回车按n向下查找按N向上查找Method2:?content默认从下往上查找只读......
  • how与what的用法和区别
    感叹句指的是具有强烈的情感色彩、表达出较强的语气情感比如喜悦、惊讶、愤怒等的句子。在英语中,感叹句一般由“how”与“what”引导。"what"和"how"与所修饰的词置于句首,其它部分用陈述句语序。一、how与what的用法:1、由"what"引导的感叹句:"what"意为"多么"用作定语,修饰名词(被......
  • C++中set的用法学习
    Set是C++ STL(标准模板库)的一个容器类,它用于存储不同的值,并且可以按照特定顺序进行访问和操作。Set是C++STL(标准模板库)的一个容器类,它用于存储不同的值,并且可以按照特定顺序进行访问和操作。Set是一种基于红黑树实现的关联容器,也就是说它的元素按照固定的顺序排列,且每个元素都唯一......
  • vim - 2
    1.1删除文本命令说明x删除光标所在的字符X删除光标左边的字符dw删除一个单词(包括单词后边的空白)de删除一个单词(不包括单词后边的空白)dG删除到最后一行d^删除到行首d$删除到行尾dd删除光标所在行D删除到行尾dgg删除到第一行可......
  • requests高级用法、代理池搭建
    requests高级用法1.自动携带cookie的session对象#session对象----》已经模拟登录上了一些网站---》单独把cookie取出来importrequestsheader={'Referer':'http://www.aa7a.cn/user.php?&ref=http%3A%2F%2Fwww.aa7a.cn%2F','User-Agent':'Mozilla/......