从零开始学Linux系统(四)之Vi/Vim操作指令

时间:2023-12-21 16:50:14

模式切换:

编辑模式 <-- 【:】<--命令模式 -->【a、i、o A、I、O】-->  插入模式

编辑模式操作:

设置行号  :set nu   :set nonu

复制剪切内容命令:

:9,15 copy 16  或 :9,15 co 16
由此可有:
:9,15 move 16  或 :9,15 m 16 将第9行到第15行的文本内容到第16行的后面 

行号移动: gg(第一行) G(最后一行)  nG/:n
移动: h、j、k、l    0 $   H、M、L

跳转到文件头:1

跳转到文件尾:$

搜索:
/『搜索的字符』  n下一个 N上个   忽略大小写  :set ic

选择行:V
复制  yy/Y   nyy/nY  
剪切  dd  ndd       粘贴   p/P
替换:
r  R + Esc   
全文替换指定字符串  :%s/原串/新串/g  或者 :%s/原串/新串/c 【多一个判断】
n1到n2行范围替换指定字符串  :n1,n2s/原串/新串/g  :n1,n2s/原串/新串/c
删除: x  nx   dd ndd dG  D    :n1,n2d
撤销   u
保存退出:
:wq!  只有root和文件所有者可以无跨w权限,这样使用

Vim技巧:

导入文件   :r 文件名
执行命令   :! 命令名
定义快捷键: :map Ctrl+P I#<ESC>  在行首加#号
           :map Ctrl+B 0x       将行首的字符去掉
           :unmap
替换::ab aa  bb     将aa变为bb        :unab aa

举例:

使用命令组合
:r !date   作用是导入日期
grep -v “^#” 文件名 | more     排除#开头的行,提取有效行
定义快捷键:
:map Ctrl+P I#<ESC>  在行首加#号
:map Ctrl+B 0x       将行首的字符去掉
:unmap
:n1,n2s/^/#/g        连续行的注释,加#
:n1,n2s/^#//g        连续行的注释,去掉#
:n1,n2s/\/\//g       连续行的注释,加//, \为转义符

例:替换为真实的邮箱地址  
:ab  mymail jinxinzhao@creditease@.cn   
:unab myail   #取消设置

保存对Vim的永久修改配置:
修改vi的缺省的配置文件:home目录下  Users/home  
vi ~/.vimrc                        vi root/.vimrc     注:用 '' 注释;

其他:

找会使查找字一直显示高亮 :nohl 可以取消高亮