vi命令学习
目录
这篇文章是我之前学习vi系列视频做的笔记,比较抽象。但看到记录,是能够想起来怎么操作的。vim还是十分强大的;记住常用的即可。后面如果用的比较多,可以去看视频,视频保存在nas里了。注意要有备份意识,修改任何重要文件前,要想到提前备份。
1、vi命令简介
vi是Linux中最经典的文本编辑器,没有图形界面,没有鼠标操作,没有菜单,只有命令,让程序员始终把手放在键盘中心部位,快速定位行数,删除,复制等操作。vim 是vi的升级版,这两个差不多,vim看到的有颜色,五颜六色的,有的操作只在vim下有用。实操起来还是很有意思的,不需要全部记住,记住常用的操作,在实操中体验vi命令的使用方法。
2、打开文件
有就打开,没有就创建
|
|
退出 q!,强制保存wq!
3、批量复制某一行
- 鼠标放在要复制的行首,esc退出编辑模式,按yy,19p,就复制了19行!
- u 撤销,u再撤销
- 按yy,p是只复制一行
- ctrl+r是撤销刚撤销的操作
4、打开时定位到行数
|
|
或者是vi 打开后。直接俄输入:n (行数),定位到这一行。这个操作很重要!在报错给到某一行的时候,需要vi打开文件,定位到这一行。文件很大如果不会定位,按上下键滚动,那得花多长时间!
5、多窗口同时打开文件
两个终端窗口都打开同一个文件,会出现下面提示
|
|
- d 是删除交换文件
- e 是直接编辑
- o 是以只读方式打开
- q 是退出
6、三种模式
- 命令模式(入口): vi 打开就进入这种模式,定位代码,浏览代码,复制代码,删除等
- 编辑模式: insert 进入,按住esc进入命令模式
- 末行模式(出口): 保存或退出文件等操作,输入
:
进入末行模式
7、末行模式命令
这种模式下命令不多,很好记。
- w 保存
- q 退出 (不保存不允许退出,一般与wq结合使用)
- q!强制退出
- x 等价wq, 保存并退出。
- wq!
8、命令模式下命令
8.1 上下左右移动光标
- h 左
- l 右
- j 下
- k 上
8.2 行内移动
- w 向后移动 一个单词,如果没单词也会上下走的 word
- b 向前移动一个单词 back
- 0 行首
- ^ 行首
- $ 行尾
8.3 行数移动go
- gg 文件顶部
- G 文件末尾(shift+g)
- 移动到数字对应行数
- ngg
- nG
- :n
8.4 屏幕移动
- ctr+b 向上翻页
- ctr+f 向下翻页
- H 屏幕顶部
- M 屏幕中间
- L 屏幕底部
8.5 段落跳转
- { 向上段切换
- } 向下段切换
8.6 括号
- % 在成对的括号内来回跳转
8.7 标记
- m[a-z] 做标记
- ‘[a-z] 调到标记的地方
很少用,了解即可
8.8 选中文本
- v 可视模式,
- V 可视行模式,选中光标经过的文本
- ctr+v 可视块模式,垂直方向选中文本
esc退出,例如ggVG是选中所有内容
8.9 撤销与恢复撤销
- u (undo) 撤销上次的命令,可以一直撤销撤销撤销
- ctrl+r (redo)恢复撤销的命令
8.10 删除
- x 删除光标所在字符,默认删除一个
- 3x,删除三个
- v模式下,按%,再按x删除
- dd 删除光标所在行
- D 删除到行尾,一般用上面那个就可了
- dw 从光标位置删除到单词末尾
- d0 从光标位置删除到行开头
- d} 从光标位置删除到段落结尾
- ndd 删除n行
- d’a 删除从光标位置到标记的地方之间的内容
- dG 删除当前后面的全部内容(直接在vi编辑中按下字母dG即删除当前行及后面所有内容)
8.11 复制和粘贴
- yy 复制一行(copy)
- y 复制 类似ctr+c
- p 粘贴 类似ctr+v
- yy np,这个很常用!
一般批量修改时在编辑模式下,用鼠标复制粘贴方便些
8.12 替换命令
- r 替换当前光标字符,当需要替换单个字符时很方便
- R 替换当前光标之后的字符
8.13 缩排及重复执行
> >
向右增加缩进,四个空格,可视模式下,只需要一个就可以« 向左减少缩进,四个空格, 可视模式下,只需要一个就可以
. 重复上次命令
8.14 查找字符
这个倒是经常用
- /str
- n 向后查找str
- N 向前查找str
-
向后查找当前光标所在单词#
向前查找当前光标所在单词
8.15 替换
- 全局替换 输入:到末行模式
|
|
- 可视区替换
v或V,下移选中,然后输入下面,注意可视模式下输入: 后会有一对尖括号,这个不要删。
|
|
- 确认替换,这个一般不怎么用,交互式的,有用处。常用的是上面两个,一个一个替换很麻烦
|
|
9、插入命令
插入命令不止只有i
- o 在当前行后插入一行
- O 在当前行前插入一行
- a 在当前字符后插入字符
- A 行尾插入
- i 在当前字符前插入字符
- I 行首插入
10、连续输入10个*
- 命令模式下输入10
- i进入编辑模式,输入*
- esc进入命令模式,可以看到增加了10个*
注意正式开发时,进入编辑模式前,不要输入任何数字
11、多行注释
- 添加多行注释,这个在vi没成功,在vim下成功了
- Ctrl+v进入VISUAL BLOCK(可视块)模式,按 j (向下选取列)或者 k (向上选取列)
- 按Shift + I 进入编辑模式,输入你想要插入的字符(任意字符)
- 按两次Esc就可以实现批量插入字符,不仅仅实现批量注释而已。
- 取消注释
- Ctrl+v进入VISUAL BLOCK(可视块)模式,按 j (向下选取列)或者 k (向上选取列)
- 按 x 或者 d 批量删除字符
12、末行命令扩展
vim 下试过可以,这些一般不常用,了解下就好
- :e . 会打开内置文件浏览器,浏览当前目录下文件
- :n 文件名, 新建文件,会切换到新文件
- :w 文件名,另存为,但不退出当前编辑文件。在代码备份方面很有用,备份不同的版本
13、分屏
分屏主要是为了同时编辑和查看多个文件,一般不用,除非很熟练,不然很容易乱和弄混。
- :sp filename 横向增加分屏
- :vsp filename 纵向增加分屏,ctr+w
- w 切换到下一个窗口
- r 互换窗口
- c 关闭当前窗口,但不能关闭最后一个窗口
- q 退出当前窗口
- o 退出其他窗口