编辑器种类
常用的文本编辑器有:
-
行编辑器,如sed,awk,cut等
-
全屏编辑器,如vi,vim(vi增强版),nano等
vim的模式
-
命令模式:使用vim filename打开文件后,进入的第一个模式。
-
直接使用键盘操作文本的编辑
-
插入模式:INSERT模式
-
进入:i,从当前光标处开始
-
进入:I,从当前行行首开始
-
末行模式:vim内置命令接口。
-
以:开头命令
-
替换模式:replace。会将光标所在的地方,替换为输入的内容。
-
进入:在命令模式下,输入R命令,进入替换模式。
-
输入r命令,则只能替换一次
-
可视化模式:代替鼠标进行选定。搭配命令模式的一个命令作为结尾
-
v 字符为单位
-
V 行为单位
-
c+v 面向块
-
visual模式下,可配合w,),}等使用
-
多窗口模式
-
锁屏
-
ctrl+s,vim锁屏
-
锁屏后,屏幕中,vim显示的内容,无论输入什么,显示的内容都不会变化。
-
锁屏后的所有输入,都会被记录,并且在解锁后,执行。同未锁屏相同的效果
-
ctrl+q,解锁
打开文件
-
-m 只读模式打开文件,文件被编辑后不能够保存,只能够强制退出
-
其他的一个只读模式——使用view替换vim打开文件,文件被编辑后,可以用:wq!来强制保存退出
-
-d file1 file2 对比两个文件,不同的地方显示高亮
-
vim +[num] 文件打开后,光标直接跳到第num行的行首,如果没有指定num,则光标跳到文件的最后一行的行首
-
vim +/pat 打开文件后,光标跳到第一个匹配{pat}的行的行首
tips -
如果vim DIR,也同样可以进入,同样可以编辑,但是无法保存。
Linux同一个目录下,不能有同名的文件夹或文件 -
显示:标准屏幕显示20行
末端模式命令
:wx 见标题:编辑完成后
:r /path 在光标所在行之后,新建行,并 读入文件
:!cmd 在vim中执行bashshell的命令(并不会插入)
:r ! cmd 或者 :r!cmd 在当前行之后插入命令执行结果
定位,跳转
单词跳
-
w 下一个单词词首
-
#w 下面的#个单词词首
-
e 下一个单词词尾
-
#e 下#个单词词尾
-
b 前一个单词的词首
-
#b 前#个单词词首
字符跳
-
h 向左跳一个字符
-
[num]h 向左跳[num]个字符
-
j 向下跳一个字符
-
[num]j 向下跳[num]个字符
-
k 向上跳一个字符
-
[num]k 向上跳[num]个字符
tips:
Japan在Korea下面,J向下,K向上 -
l 向右跳一个字符
-
[num]l 向右跳[num]个字符
多行跳
-
H(HIgh) 当前页第一行的行首
-
[num]H 当前页第[num]行的行首
-
L(low) 当前最后一行的行首
-
[num] L 当前页倒数第[num]行的行首
-
M(middle) 当前页中间一行的行首
-
\^ 行首(不算空格)
-
0 绝对行首
-
$ 绝对行尾
-
G 文章最后一行行首
-
[num]G 第[num]行行首
-
:[num] 文章的第[num]行
-
文章第一行 1G,:1,gg
-
( 前一句(以.为分隔)
-
) 后一句
-
{ ·前一段
-
两行之间只有回车,不算段落,必须之间有一个空行,才算是不同段落。
-
} 后一段
屏幕为单位
-
c+f 前进一屏
-
c+b 后退一屏
-
c+d 前进 半屏
-
c+u 后退半屏
命令模式快捷键
-
x
-
#x
-
d
-
#d
-
y复制字符
-
#y
-
yy 复制行
-
#yy
-
c替换
-
#c
-
C删除到光标所在行尾,并切换到insert模式
-
#C
-
gu(变小写),
-
gU(变大写)的相关操作、
NOTES:
[num]gu/gU,操作num+1行,并且num默认为1,即gu/gU至少操作两行
在组合模式中:0gU$将本行从行首到行尾都转换为大写 -
~大小写转换
这些命令通常都可以与地址定界符相结合使用,以d为例,如下:
d$
d^
dH
dL
dM
dw
de
db
d)
d}
d(
d{
dgg
dG
d1G
还可以在命令前后都添加地址定界符,语法为:
-
J 去掉行尾的回车符,将不同的行转换为同一行
-
p 在光标之后粘贴
-
P在前面粘贴
-
u 撤销
-
u 撤销
-
U 撤销光标落在这一行后,对此行所做的所有更改
-
c+r 取消刚才的撤销,
-
. ()英语的句) 重做
-
[num]. 重做num次,默认为1
地址定界
-
:#
-
:#1,#2
-
:#1,+#2
-
:. 当前
-
:$ 最后一行
-
:$-1 倒数第二行
-
%或者‘:1,$’ 第一行到最后一行
-
:/pat1/,/pat2/d删除第一个匹配pat1到第一次匹配pat2之间的行。
-
:#,/pat3/从第#行开始,到第一次匹配pat3,之间的行
vim的命名寄存器
vim一共有26个(a-z),1个无命名寄存器(默认寄存器)
-
“a表示后续的操作在a寄存器中操作
-
“ayy复制当前行,到a寄存器
-
3“ayy表示复制3行到a寄存器中
-
默认情况使用的是无命名寄存器
“ap粘贴a寄存器的内容到当前航
编辑完成后
-
:x= 相当于:wq,但是尽量别用x,因为x的使用,会产生不安全因素
-
ZZ 存盘退出
-
ZQ 不存盘退出
-
:w /path 存内容到path文件,vim打开的文件不会变。
多窗口模式
打开方法
- vim file1 file2 file3 - vim -o 打开横向 - vim -O 打开多个竖向 - vim -p 打开多个tag
切换方法
-
命令模式:c+w+向下
-
命令模式:c+w+向上
-
:next
-
:prev
-
:last
-
:first
-
:wqall
-
c+w+v 左右
-
c+w+s 上下
关闭窗口
-
c+w+q取消相邻窗口。
-
c+w+o取消全部其他窗口
模式转换
-
a 追加模式,在当前光标所在字符之后插入(光标跳到当前字符之后的一个字符,并进入INSERT模式)
-
如果当前行包含一个字符(即使是空白字符也可以),在该字符之后插入
-
如果当前行为空白行(连空白字符都没有,直接就是回车),直接插入
-
A 光标到当前行最后一个字符
-
i 光标位置不变,在当前光标之前插入
-
I 光标自动跳到行首
-
o 在当前行后,新建一行
-
O 在当前行前,插入一行
-
R 进入替换模式,会将光标所在位置的字符替换为输入字符
-
r 单字符替换模式,只替换一次
other notes:
-
vim打开passwd文件或者其他文件,经常会有额外的提示
这种现象的原因往往是上次使用该文件的时候异常退出导致的。这种异常退出,会使原本打开时生成的缓存文件.passwd.swap文件,没有被正常删除。
只要删除了隐藏文件.filename.swqp就可以了 -
关于vim打开文件后的各种颜色
在/etc/文件下打开文件,一般都是有颜色的。vim会自动给那些它认为有意义的文件颜色。这些文件,要么是有结尾标识(比如.sh),要么在文件中有标识(比如#!/bin/bash),要么在特定的文件夹下面(比如/etc/下通常被识别为配置文件)。如下:
原创文章,作者:m20-吴清玲,如若转载,请注明出处:http://www.178linux.com/36414