linux文本编辑器vi和vim学习笔记

来源:互联网 发布:百变小樱之知樱复仇 编辑:程序博客网 时间:2024/05/22 13:16
搜索:?keyword  或 /keyword

查找替换(在末行模式下使用):
:定界s/查找的内容/替换的内容/
查找和替换内容分隔符:/、#、@等均可
查找的内容:支持正则表达式
替换的内容:不支持正则表达式,但可使用前向引用
修饰符:
g: 全局替换
i: 忽略大小写
&: 用以引用前面查找到的字符
%: 全文查找 等于1,$
查找或替换的内容中若出现/需要对其进行转义 
例:1,20s/\<u\([[:alpha:]]\{3\}e\)\>/U\1/g     //在1到20行间查找并替换以u开头e结尾中间有任意三个字符的单词并此单词首字母替换成大写     cp到root下的rc.sysinit文件
    1,20s/\(name\)\>/\1r/g或1,20s/name\>/&r/g  //在1到20行间查找并替换以name结尾的单词后加r字符

编辑模式:命令,x,dd
输入模式:接收输入
末行模式:设置行号、退出、保存、查找、替换等  !shell 和shell交互

vi +[n] file    //打开文件光标定位在第n行;若不加数字n,则光标定位在文件末行

打开默认模式:编辑模式
编辑模式-->输入模式
i:当前光标所在字符前面插入
a:当前光标所在字符后面插入
o:当前光标所在行下一行打开一行并插入

I:当前光标所在行行首插入
A:当前光标所在行行尾插入
O:当前光标所在行上一行打开一行并插入

c:先删除指定范围内容,再转换到输入模式

输入模式-->编辑模式
esc键
编辑模式-->末行模式
:
末行模式-->编辑模式
esc键 esc键

输入模式-->末行模式:不能直接转换,需中间状态换乘

光标移动:
h:向左移动
j:向下移动
k:向上移动
l:向右移动

单词跳转:
w:跳转下一个单词词首
n+w:跳转n个单词
e:当前单词或下一个单词词尾
b:跳转至当前单词词首或前一个单词词首

行首、行尾跳转:
^:跳转到行首第一个非空字符处
0:跳转到绝对行首
$:跳转至绝对行尾

行间跳转:
n + G:跳转n行

末行模式下跳转:
:n  跳转到第n行

翻页跳转:
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
ctrl+d:向下翻半屏
ctrl+u:向上翻半屏

删除:
x:删除光标所在处一个字符
n+x:从光标所在位置向后删除n个字符
X:删除光标所在处前一个字符
d:删除行
dd:删除一行
n + d:删除多少行
dw、d$、d0  (结合行内字符跳转删除光标向前、向后、到结尾、到开头等)

末行模式下的删除:
地址定界:1,50d  回车   //删除1到50行内容
         .,$d  回车   //删除光标所在行到最后一行内容(.表示光标所在行;$表示最后一行)
相对地址删除:n,+5d 回车  //删除从第n行和向下5行的内容
             n,-5d 回车  //删除从第n行和向上5行的内容
             .,$-1d 回车 //删除光标所在行到倒数第二行的内容
  /PATTER1/,/PATTER2/d   //删除当前行以下第一次匹配PATTER1到第一次匹配PATTER2之间的内容

粘贴:
p:
  1,若删除或复制的是整行,则在当前光标所在行上方粘贴
  2,若删除或复制的单词或行的部分,则在光标当前所在处后方粘贴
P(大写):1,若删除或复制的是整行,则在当前光标所在行下方粘贴
  2,若删除或复制的单词或行的部分,则在光标当前所在处前方粘贴

复制:
y:同d用法 支持w、b、e、^、0、$ 
yy:
n + y:

撤销:
u:撤销上一次编辑操作  (可以执行之前的50次操作的撤销)
ctrl+r:撤销最近一次撤销操作

文件另存为:
定界符w /path/to/somewhere
例: 1,$w /data/file.txt  //将当前文件的全部内容另存到/data目录下file.txt中

文件窗口拆分:
水平拆分:ctrl+w,s
垂直拆分:ctrl+w,v
光标两个窗口切换:ctrl+w,箭头
关闭光标所在窗口:ctrl+w,q或:q

打开多个文件:
vi file1 file2 file3

已打开文件之间切换:
:next  切换至下一个文件
:prev  切换至上一个文件
:first 切换至第一个文件
:last  切换至最后一个文件
:wall  保存所有文件
:wqall 保存退出所有文件
:q!all 强制退出所有文件

打开多个文件并拆分:-o 水平拆分 -O 垂直拆分

定制vi的工作属性
:set #   
例::set [no]nu 即:set nu 显示行号  :set nonu  去除行号 
    :set [no]ai  自动缩进
:set     显示常见设定属性
:setall  查看全部可以设置的属性

:syntax on/off   设置语法高亮

全局配置文件:/etc/virc
个人配置文件: ~/.virc  (此文件默认没有,需自己手动建立)

vimtutor  //vim练习课程,vim程序自带的练习

可视化模式:
v:按字符选取
V:按行选取

退出vi
:q   不保存退出
:q!  强制退出
:wq或ZZ或shift+zz  保存退出
:w!  强制保存  
0 0