vi: visual interface
vim:vi improve
全屏编辑器,模式化编辑器
vim:编辑模式(默认)、输入模式、末行模式
模式转换
编辑-->输入:
i:定位光标前
a:定位光标后
o:光标下添加新行
输入-->编辑:esc
编辑-->末行: :(输入冒号)
末行-->编辑:esc键
用法:vim /path/to/somefile
一、打开文件:
vim +n FILE:打开文件,并定位第n行
vim +:定位到最后一行
vim +/PATTERN:定位到第一次被PATTERN匹配到的行
二、关闭文件:
wq(或x)、q、q!、w!(强行保存)
ZZ:编辑模式下退出
三、移动光标
1、逐字符移动光标:h(左) l(右) j(上) k(下)
#h:移动#个字符
2、以单词为单位移动
w:下一个单词词首
e:下一个单词词尾
b:上一个单词词首
e:上一个单词词尾
3、行内跳转
0:绝对行首
^:行首第一个非空字符
$:绝对行尾
4、行间跳转
#G:跳转至#行
G:最后一行
四、翻屏
ctrl+f:向下翻屏
ctrl+b:向上翻
ctrl+d:向下翻半屏
ctrl+u:向上翻半屏
五、删除字符
X:删除字符
#x:删除后#个字符
六、删除命令:d
#dw、#de、#db
dd:删除当前光标所在行
#dd:删除包括当前光标的前#行
末行模式下:
startADD,endADDd :删除startADD到endADDd 行
.:当前行
$:最后一行
+#:向下的#行
七、粘贴命令p
八、复制命令y(用法与d相同)
九、修改c:先删除内容,再转换为输入模式
十、替换r
R:替换模式替换多个字符
十一、撤销编辑操作u
u:撤销前一次操作
撤销最近一次撤销动作:ctrl+r
十二、重复前一次编辑操作.
十三、可视化模式
v:按字符选取
V:按矩形选取
十四、查找(n高亮显示)
/PATTERN
?PATTERN
十五、查找并替换s(末行模式)
十六、使用vim编辑多个文件
vim FILE1 FILE2 FILE3
:next 切换到下一个文件
:prev 切换到上一个文件
:qa 全部退出
十七、分屏显示一个文件
ctrl+w、s:水平拆分窗口
ctrl+w、v:垂直拆分窗口
在窗口间切换光标:
ctrl+w,ARROW
:qa 关闭所有窗口
十八、分窗口编辑多个文件
vim -o:水平分割显示
vim -O:垂直分割显示
十九、将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
:w
二十、将另外一个文件的内容填充在当前文件中
:r /path/to/somefile
二十一、跟shell交互
:!COMMAND
二十二、
1、显示或取消行号
:set number
:set nu
:set nonu
2、显示忽略或区分字符大小写
:set ignorecase
:set ic
:set noignorecase
3、设定自动缩进
:set autoindent
:set ai
:set noai
4、查找到的文件高亮显示或取消
:set hlsearch
:set nohlsearch
5、语法高亮
:syntax on
:syntax off
二十三、配置文件
/etc/vimrc
~/.vimrc
vim:
文件查找:
locate:非实时的,模糊匹配,查找是根据全系统文件数据库进行的
# updatedb,手动生成文件数据库,速度快
find:查找路径,查找标准,查找到以后的处理动作
查找路径:默认当前路径
查找标准:默认为指定路径下的所有文件
处理动作:默认为显示
匹配标准:
-name 'FILENAME' 对文件名做精确查找
文件名通配:* ? []
名字匹配:
-iname 'FILENAME' :文件名匹配不区分大小写
类型匹配:
-type:f,d,c,p,l,b,s
大小匹配:
-size:#k #m #g
组合条件:-o -a -not
时间匹配:
-ctime,-atime,-mtime -amin
权限匹配:
-perm MODE:/MODE,-MODE
运作:
-print:显示
-ok COMMAND:
xargs命令可与find命令结合
特殊权限:
SUID:运行某程序时,相应的进程属主是程序文件自身的属主,而不是启动者 用法:chmod u+s FILE
SGID:运行某程序时,相应的进程属组是程序文件自身的属组,而不是启动者属组
sticky: