春节期间,肺炎疫情非常严重,也不能出门,总结点东西吧。
一、vim操作
1.1 常用的编辑操作
1.1.1移动光标:
1使用方向键 上下左右
2 快捷键 上K下J左H右L
1.1.2复制粘贴操作
复制/粘贴单行文本:
在根目录下创建一个test目录,在test目录下使用vim创建并打开123.txt文件
打开默认是导航模式,按字母I键进入编辑模式,随便输入内容,然后按Esc退出到导航模式;进入编辑模式有多个快捷键方式,按i键在光标所在位置插入,按A键,则定位到原来光标的后一位并进入编辑模式,按shit+I则定位到光标所在行的行首并进入编辑模式,按shift+A则定位到光标所在行的行尾并进入编辑模式,按字母O键直接定位到光标所在位置的下一行,并插入一行空白行进入编辑模式,按shift+O则定位到光标所在行的上一行,并插入一行空白行进入编辑模式;
复制单行内容,例如要复制hello world,在导航模式下,则将光标定位到hello world那一行的任意位置,然后按下yy(两次y键)进行复制,然后再按下p键,即可在原hello world那一行的下一行粘贴一行hello world
如果要复制多行内容,例如要复制123和hello world,则将光标定位到123那一行,按下shift+V(进入行可视模式,可以多个单行的进行选择),即可处于选中状态,然后使用上下键进行往上或往下选择,因为这里要复制 123和hello world,所以使用方向键下键,往下选择一行,此时即选中了两行(即123和hello world)
然后按y键复制,然后将光标移动到hello world那一行,按p键粘贴 ,即在原来的hello world那一行的下边粘贴123和hello world
如果不是单行复制,也不是多行复制,而且只是复制某行的某些字符,或者跨行的某些字符,则可以在导航模式下,按V键,进入字符可视模式,将光标移动到对应的字符前边,然后使用上下左右键进行单个字符的多次选择。
注意:复制粘贴操作都是在导航模式下进行操作,在文档操作完成后,输入:(冒号进入命令模式,冒号后输入相关命令),即输入‘:wq’,或者输入‘:x’,保存并退出。
如果要把一个文档的部分内容复制到另外一个文件中:
Shift+v多选,然后y复制,:q退出当前文件,打开新文件 p粘贴。
1.1.3 删除操作
在导航模式下按下X键删除光标后一位字符,类似delete键功能,在编辑模式下,按backspace键回退删除光标前一个字符。
如果要删除单行文本,则在导航模式下光标定位到要删除的那一行 ,按下DD键即可,若要删除多行,则按多次DD键,如果删除光标所在位置到行首的字符,使用D0(数字0)或者D^,删除光标所在位置到行尾,使用D$;
总结一下复制,粘贴和删除操作,如下表
操作类型 | 快捷键 | 功能说明 |
---|---|---|
删除 | X或Del | 删除光标位置后边的单个字符 |
shift+X或者Backspace | 删除光标位置前边的单个字符 | |
数字(用变量n表示)+X | 删除光标后边的n个字符 | |
DD | 删除光标所在的一整行 | |
nDD | 删除从光标处开始往下的n行内容 | |
D^或者D0 | 删除当前光标之前到行首的所有字符 | |
D$ | 删除当前光标所在位置到行尾的所有字符 | |
DW | 删除当前光标所在位置到下 一个单词词首的字符 | |
DE | 删除当前光标所在位置到当前或下个单词词尾的字符 | |
DB | 删除当前光标所在位置到当前或上个单词词首的字符 | |
复制 | YY | 复制当前行整行的内容到剪贴板中 |
nYY | 复制从光标位置开始往下的n行内容 | |
Y^ | 复制从光标至行首的内容 | |
Y$ | 复制从光标至行尾的内容 | |
YW | 复制从光标开始到单词词首的字符 | |
YE | 复制从光标开始到单词词尾的字符 | |
nYW | 复制从光标开始位置的n个单词 | |
粘贴 | P | 将剪贴板中的内容粘贴到光标位置之后 |
shift+P | 将剪贴板中的内容粘贴到光标之前 | |
1.1.4 误操作撤销与重做
误操作之后,后悔了,则在导航模式下按U键(undo),如果要重做则ctrl+R键(redo),如果只对光标所在行进行的操作进行撤回,按shift+U, 按两次shift+Z键,是保存当前文件内容并退出vim编辑器
1.1.5 自动补全操作
在编辑文件时,输入部分字母,可以给出补全提示
此时在test目录下创建一个xiaomifeng1010.properties
输入一些内容:
已经编辑了两行内容,接下来如果再增加一行配置xiaomifeng1010.password
则只需输入x,然后按下ctrl+N,则会弹出补全提示
然后按上下键来选择匹配哪一个。
当然这里测试用的文本也可以从本地计算机上传一个文件(毕竟在linux里边编辑文本会相对麻烦),比如提前在本地计算机已经准备好了一个演示文件xiaomifeng1010.properties.
此时上传问价到服务器,需要先安装一个上传工具lrzsz:
输入命令 yum -y install lrzsz,安装工具
安装成功后,输入rz
会弹出选择文件的窗口:
然后选择xiaomnifeng1010.properties上传即可(还支持拖拽上传文件我是用的是SecureCRT,直接将文件拖拽到SecureCRT的窗口,按照提示即可完成上传)。
注意这个lrzsz工具其实挺好记的,rz是上传功能,从windows本地上传文件到linux服务器,而sz则是从linux服务器下载文件到windows本地。
例如现在要下载xiaomifeng1010.properties到本地,则命令为sz /test/xiaomifeng1010.properties
则会将xiaomifeng1010.properties文件下载到window系统的下载目录(默认下载位置)
传输完成,显示100%,查看windows系统目录
1.2 定位操作
1.2.1 显示和隐藏行号
在导航模式下,输入冒号进入命令模式,输入':set nu'命令显示行号,输':set nu!'或者‘:set nonu’隐藏行号
要隐藏行号,则':set nu!'或者‘:set nonu’
1.2.2 定位并插入
在导航模式下,按O键进入编辑模式并将光标定位到下一行,并插入一行空白行,shift+O则是定位到光标的上一行,并插入一行空白行;shift+I(大写的字母i)定位到行首并进入插入模式,shift+A定位到行尾并进入插入模式
1.2.3 快速在整个文件中定位
定位到文件的开头,则在导航模式下,按两下G键,定位跳转到文件的结尾,Shift+G;跳转到文件的第n行,n+shift+G;向下跳转n行,则n+(具体数字后再按加号),向上跳转n行,则是n-
1.2.4 快读定位到某一行
在导航模式下,输入冒号进入命令模式,然后输入对应的行号
例如,定位到第二行
定位移动操作总结:如下表
操作类型 | 快捷键 | 功能说明 |
---|---|---|
翻页 | PgDn 或者Ctrl+F | 向下翻动一页内容 |
PgUp或者Ctrl+B | 向上翻动一整页内容 | |
Ctrl+D | 向下翻动半页内容 | |
Ctrl+U | 向上翻动半页内容 | |
单词键快速跳转 | W | 跳转到下一个单词的词首 |
E | 跳转到当前或者下一个单词的词尾 | |
B | 跳转到当前或者上一个单词的词首 | |
n+对应的操作键表示跳转对应方位的n个单词的位置,例如2W表示跳转到后边n个单词的词首 | ||
行内快速跳转 | Home键,^或0 | 跳转到行首 |
End键或$ | 跳转到行尾 | |
行间快速跳转 | GG | 跳转到文件的首行 |
shift+G | 跳转到文件的末尾行 | |
n+shift+G | 跳转到文件的第n行 | |
n+(数字,然后再按shift和加号) | 向下跳n行 | |
n-(数字,然后直接减号,中间不用加shift) | 向上跳n行 | |
当前页 | shift+H | 跳转到当前页的首行 |
shift+M | 跳转到当前页的中间行 | |
shift+L | 跳转到当前页的尾行 | |
ZT | 将当前光标所在行置于屏幕顶端 |
1.3 查找和替换操作
1.3.1 查找文件中的关键字
在导航模式下,输入'/关键字';
先上传一个工作中用的一个文件 jdbc-oracle.properties,然后查看配置文件中数据库连接的密码,则在导航模式下输入'/password'
就为定位到第一个password的位置,如果要查看下一个password的位置,则按N键,如果想上查找,则shift+N;
查找关键字还可以?关键字,就是用问号替换斜杠,也可以查找关键字,然后按N键则是往上查找
1.3.2 内容替换(无需确认)
命令行模式下(也可以称作末行模式)
输入 :s/旧内容/新内容,回车后,只会替换光标所在行的第一个符合条件的内容;
如果要替换光标所在行所有符合的内容,则输入 :s/旧内容/新内容/g
如果要全局(全文替换),则命令模式 :%s/旧内容/新内容/g
例如,刚才的文件,我要把gpump全部替换成xiaomifeng1010
操作为':%s/gpump/xiaomifeng1010/g ',会全部替换掉gpump而无需确认
1.3.3 内容替换(需要一个个确认)
命令模式 :%s/旧内容/新内容/gc (c即confirm确认)
会有一个提示,问你是否替换,y(yes)or n(not) ,此时输入y,就替换,输入n,则不替换。
1.4 视图模式
还有一个比较实用的是块视图,可以同时对多行进行编辑以及删除操作
创建并打开一个测试文件
touch test.txt ; vim test.txt; 按i键进入编辑模式,输入一些文字
现在文本文件中有4行,a,b,c,d ;现在我要统一在这几行前边加上 private String该如何操作呢?
首先按Esc退出编辑模式,然后按Ctrl+V进入块视图模式,如下:
vim编辑器中提示了可视块,进入了块视图模式,然后按上下左右键,或者HJKL,选择要修改的行
我现在从d所在的第四行往上选择了4行,然后按shift+I(字母i),定位到第一行并进入编辑模式,然后输入 private String,输入完后,按两次ESC退出,就得到下边的效果:
如果要一次删除多行内容,则只需要替换上边shift+I的操作为D键,即可删除选中的多行内容