一、终端
ctrl+a 移动到开头,ctrl+e 移动到结尾,ctrl+b 前移一字符,ctrl+f 后移一字符ls 查看当前目录下的文件及文件夹cd 进入某个目录mkdir 创建文件夹rm 删除文件或文件夹等vim 在linux等服务器上使用会打开一个前置页面,可以进入帮助文档等界面,也可以开始编辑
- 如果直接vim编辑的话,最后没有办法保存以及退出,因为没有文件名字;可以用
:w 加一个名字 - 如果是
vim +名字的话就时编辑文件,后续问题遇见再记
二、四种模式(部分知识点)
- 正常模式(Normal-mode)
- 插入模式(Insert-mode)
- 命令模式(Command-mode)
- 可视模式(Visual-mode)
切换模式:如果esc 不方便,可以改键,把ctrl+[ 改成esc 的功能
1. 正常模式
1.1 查看操作
- 查看文档使用:
h 是向左,j 是向下,k 是向上,l 是向右 - 按下
gi 回到最后一次编辑的位置 w/W 移动到下一个word/WORD 开头;e/E 下一个word/WORD 尾部;b/B 回到上一个word/WORD 开头;word 指的是以非空白符分割的单词,WORD 以空白符(" ")分割的单词- 使用
f+字符 ,搜索该行字符,并到其位置;其中; 为下一个位置, 为上一个位置(当前所在字符后面一个);t+字符 ,跳转到想要的字符的前一个字符 0 移动到行首的第一个字符,^ 移动到第一个非空白字符;$ 移动到行尾,g_ 移动到行尾非空白字符gg/G 移动到文件开头或者结尾,使用ctrl+o 快速返回,回到光标上个位置;H/M/L 跳转到屏幕的开头,中间,结尾;ctrl+u ,ctrl+f 上下翻页;zz 把屏幕置为中间
1.2 更改操作
d+h/j/k/l 删除字符;u 可以撤销更改;y 复制一整行,p 粘贴- 使用
x 可以快速删除一个字符;daw 删除单词以及周围的空格,diw 删除单词但不删除空格,dw 默认是daw ,dd 删除整行,dt+某字符 表示删除光标到某字符之间的内容;d 和0/$ 配合删除 c 就是配合文本对象,快速修改,类似d ;可以配合数字,删除或修改多个r+字符 替换一个字符,R 可以不断替换后面的字符(输入多少替换多少),s 删除并进入插入模式
1.3 复制粘贴
-
复制粘贴y 和p ,剪贴d 和p -
使用v 选中要复制的,然后复制粘贴 -
配合文本对象,比如yiw 复制一个单词,yy 复制一行
2. 插入模式
2.1 打开方式
i 在光标前打开,a 在光标之后打开,o 在光标下面一行行首打开,s 删除光标所在位置的字符后打开I 在光标所在行的最前面打开,A 在光标所在行的最后打开,O 在光标所在行的上面一行打开,S 删除光标所在行然后在行首打开
2.2 更改操作
ctrl+h 删除上一个字符,ctrl+w 删除上一个单词,ctrl+u 删除当前行(终端下也可以)
2.3 复制粘贴
- 在
vimrc 中设置了autoindent (自动缩进),粘贴代码会缩进错乱(可以使用:set paste 和:set nopaste 来解决)(也可以在normal 模式下粘贴,相对简单)
3. 命令模式
:w 保存;:q 退出;:wq w和q的和:保存及退出:set nu 给编辑文本的每一行加序号:% s/[文本]/[文本]/g 其中:% 表示整个文件(数字,数字 就是几行到几行),s 是替换,把前文本(如果只想替换该单词,而不是包括该单词的单词,需要正则表达式)替换为后文本,g 是全局(c 是确认,可以确认或者拒绝修改;n 报告匹配的次数而不替换,可以用来查询匹配次数)/[文本] 可以检索全文中有无:x 若当文件被修改过,直接保存退出;若没有修改过,直接退出:syntax on 临时设置代码高亮- 使用
/ 或者? 进行前向或者反向搜索(大概就是光标前后);搜索之后使用:set hls ,可以高亮,:set incsearch 边搜索边高亮;使用n/N 跳转到下一个或者上一个匹配;使用* 或者# 进行当前单词的前向和后向匹配(光标所在位置)
4. 可视模式
v 在当前光标处打开,V 当前光标所在行全选中打开,可以配合h、j、k、l 来选中文本d 是删除选中文本,u 是撤销更改,y 是复制选中文本,p 是粘贴ctrl+v 块状选择,可以和方向键←↓↑→ 配合
三、其他
1. buffer缓冲区
可以粗俗的理解为打开了多个文件
-
使用:ls 列举当前缓冲区,使用:b n 跳转到第n 个缓冲区 -
:bpre 上一个 :bnext 下一个:bfirst 第一个 :blast 最后一个 -
在文本内:e 文件名 打开另一个文件;然后把这个文件加入缓冲区;然后就可以使用上述操作跳转
2. window窗口
-
<ctrl+w>+s 水平分割;<ctrl+w>+v 垂直分割; :vs 竖分屏;:sp 横分屏 -
<ctrl+w>+w 是窗口间循环切换;也可以和h/j/k/l 配合切换 -
同一文件的修改是同步的 -
:h window-resize 查看文档,其中的操作可以重排窗口
3. tab标签页
类似于浏览器标签页一样,然后每一页都是同一种类型的操作,方便观看,但是一般不用,太多较麻烦
-
:tabe[dit] filename 在新标签页打开文件,gt 是正常模式下的切换标签页 -
[number]<command>[text object] number 表示次数,command 是命令,d(delete) ,c(changer) ,y(yank) text object 是要操作的文本对象,比如单词w ,句子s ,段落p 例子:daw (around周围的,包括空格的单词)diw (inner,不包括空格的单词)
4. vim寄存器
主要是用来复制粘贴的
x+p 可以调换俩字符(x 可以快速删除)“a 就是自定义寄存器a(a-z) ,然后把内容存到a 中;:reg a 可以查看a 中存的内容;然后用“a+p 粘贴;然后“” 表示无名寄存器,缺省使用- 专用寄存器:
“0 复制成功后会复制到这个寄存器和无名寄存器中 - 系统剪贴板
“+ 然后就可以在vim以外使用了【:set clipboard=unnamed 后可以直接复制粘贴(p )到系统剪贴板(:echo has('clipboard') 可以查看是否有这个,返回1 就是有)】 “% 粘贴当前文件名,”. 粘贴上次插入的文本;e! 重新加载
|