Linux vim和nano
nano编辑器
在Linux一些比较老的发行版本里面,nano使用的也比较多。nano相对于vim来说,使用更简单。在 nano 的底部,有一系列以 ^ 开头的选项,这些是当前可用的快捷键操作。这里的 ^ 符号表示 Ctrl 键。
nano的基本使用:
打开文件:nano file_name
退出文件:ctrl+x
按ctrl+x快捷键退出,如果有未保存的更改,会提示进行保存,如果不保存直接按n就行了。
搜索关键字:ctrl+w
按 ctrl+w可以所有文本文件中的某些关键字,如果文件中有多个相同的关键字,再次按下Ctrl + W来找到下一个相同的关键字
保存退出:ctrl+o
按 Ctrl + O 然后再按 Enter 保存更改。保存修改后,再按ctrl+x即可退出,如果不想保存退出,按ctrl+c可以取消;
页面滚动:ctrl+v或y
-
Ctrl + Y 向上滚动页面
-
Ctrl + V 向下滚动页面
vim编辑器
vim(Visual editor iMproved)编辑器是vi(Visual editor)编辑器的增强版本,vi编辑器是大多数Linux发行版系统自带的,而Vim编辑器在某些最小化安装的发行版系统中,需要单独进行安装。
vim和其它工具一样,也是存在配置文件的,但是vim存在两个配置文件,/etc/vimrc 和 ~/.vimrc
-
/etc/vimrc:针对所有人都有效,ubuntu中配置文件时在/etc/vim/vimrc
-
~/.vimrc:默认没有,需要手动建立 当前用户生效
例如:使用vim创建一个新文件时,使用utf8编码
sudo vim /etc/vim/vimrc
set fileencoding=utf-8
例如:设置打开一个文件时,尝试使用utg8编码打开
# 打开一个已存在的文件时,vim 会按照 fileencodings 列表中指定的顺序来尝试不同的编码格式,直到找到一个可以正确解码该文件的编码
sudo vim /etc/vim/vimrc
set fileencodings=utf-8,iso-8859-1
# set fileencodings=utf-8 也可以只指定一个编码格式
vim的三种工作模式
vim编辑器相对一nano来说,功能更加强大。vim编辑器默认有三种工作模式,末行模式、编辑模式和命令模式,打开一个文件的时候,默认是处于命令模式下的,通过不同的案件可以实现编辑模式的切换。
-
命令模式:查看文件内容,只能移动光标和文本粘贴/剪切,且操作不会在屏幕显示;
-
编辑模式:文本的编辑,数据交互
-
末行模式:执行相关的命令
命令模式(普通模式)
命令模式就是输入相关的命令来实现对文本的操作。以下是一些常用的操作命令
退出操作: 打开某个文件后,可以使用命令行的Z+Q和Z+Z来实现退出操作。(大写字母)
-
ZQ:直接退出
-
ZZ:保存并退出
行首行尾跳转: 通过按 ^ 和 $ ,可以实现光标跳转到光标所在行的行首和行尾
-
^(脱字符):跳转到光标所在行的,数字0也可以
-
$:跳转到光标所在行的行尾
行间跳转: 按 G 可以将光标移动到文本的最后一行,如果G前面加上数字,就可以跳转到指定的行。例如 11G,表示将光标跳转到第11行。如果是跳转到首行的话,是gg。
-
gg:光标移动到文本的第一行
-
G:光标移动到文本的最后一行,前面加数字就是移动到指定行。
删除操作: 删除是d这个命令,删除操作可以结合前面的光标移动命令来实现指定范围内字符的删除。比如:d$表示从当前光标所在字符开始,一直删除到光标所在行的最后一个字符。如果想删除整行内容,直接输入dd命令。
-
d0:从光标处开始 删除到行尾
-
d$:从光标处开始 删除到行尾
-
dd: 删除光标所在行
复制操作: 复制时y命令,和删除一样,也是可以结合相关移动命令来实现范围内的字符复制。如果要整行复制就用yy命令。
-
yy:复制光标所在的整行
-
y0:复制到行首
-
y$:复制到行尾
查找操作: 可以通过 /关键字 这种方式来查找文本内的指定字符,这种方式是从当前光标位置开始,向下查找。按下 n 会跳转到下一个匹配项。按下 N 会跳转到上一个匹配项。
-
/关键字: 向下搜索,
-
? 关键字:从当前光标位置向上搜索,n:向上 N:向下
插销操作: 如果更改了文件内容,在还没有保存的情况下可以按 u 进行取消操作,回到上一次操作的内容。如果想取消撤销,就按 ctrl+r。
-
u:撤销当前操作
-
ctrl+r:取消撤销操作
可视化模式: 在命令行按 v 时就进入可视化模式,可视化模式的作用是用于选择文本块的,进入可视化模式后,可以批量选择。
-
v:选择文本中的单个字符
-
v:选择整行文本
-
ctrl+v:选择文本的一个矩形区块
例如:选择文本中的单个字符
按下 v 后,初始时只有光标所在的字符被选择
按下 v 并向右移动,会开始从光标的初始位置选择字符
向下移动,会选择到下一行的同样位置
例如:选择整行文本
按下 V 后,初始时光标所在行的整行文本都会被选择
例如:选择文本的一个矩形区块
例如:批量注释行:
1、先将光标移动到指定行的第一行行首
2、输入ctrl+v 进入可视化模式
3、向下移动光标,选中希望操作的每一行的第一个字符
4、输入大写字母 I 切换至插入模式(大写I 表示在当前光标所在行的行首输入)
5、输入 #
6、按 ESC 键
末行模式
在命令模式下按冒号(:)就可以进入末行模式,末行模式也是有很多的命令。末行模式可以理解为命令行界面,正是因为需要按冒号才能进入末行模式,所以这就是很多命令前面带冒号的原因。
保存退出操作:
-
w:保存
-
q:退出
-
x:保存并退出
-
!:结合w q等命令使用,表示强制的意思
末行模式的set命令:
通过set命令可以用于设置文本的一些显示方式;
-
set nu:显示行号,set nonu:取消行号显示
-
set ai:自动缩进,set noai:取消自动缩进
-
set paste:复制文本内容到该文件时候,保留文件格式,set nopaste:取消格式保留
-
set list:显示不可见的字符。^I:表示tab键 $:表示回车
-
set ff=unix|dos:更改文本格式,unix就是linux格式,dos就是windows的格式
搜索替换:
-
s/xx/yy/:将文本中光标所在行的第一个xx替换为yy
-
s/xx/yy/g:将文本中光标所在行的所有的xx替换为yy
-
%s/xx/yy/g:将文本中所有的xx都替换为yy,如果不加g,只会搜索
说明:分隔符 / 可以换为其它的,例如 s#xx#yy#
例如:将文本文件中所有的mysqld替换为mysqldd
:%s/mysqld/mysqldd/g
# 前面的冒号表示从命令模式进入末行模式