一、终端
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退出;:wqw和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!重新加载
|