07_01020304_linux vi

来源:互联网 发布:言论自由的界限 知乎 编辑:程序博客网 时间:2024/06/05 10:55

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:

0 0