vim用法小结

vim使用:

使用vivim的三种主要模式 : 命令模式,插入模式,扩展模式 

 

扩展模式:

w:写入磁盘文件

wq:写入并退出

x:写入并退出

q:退出

q!不存盘退出,即使更改都将丢失

r filename:读文件内容到当前文件中

w filenane: 将当前文件内容写入到另一个文件中

!command:在当前界面执行命令

r!command:读取命令执行结果到文件中来。

 

移动光标,进入插入模式 v 

i:当前位置插入

I:当前光标所在行行首输入

a:在当前光标所在处后面输入

A:在当前光标所在行的行尾输入

o:当前光标所在行的下方打开一个新的行

O:当前光标所在行的上方打开一个新的行

光标在单词间跳转:

w:跳转到下一个单词的词首

e:跳转到当前单词的词尾或下一个单词的词尾

b:跳转到当前单词的词首或前一个单词的词首

 

当前页面跳转:

H:页首的行首

M:页面中间行首

L:页面尾部行首

 

当前行跳转

0:跳转至当前行的行首

^:跳转至当前行的非空字符行首

$:跳转至行尾

 

行间移动:

数字+G:跳转至数字指定行

G:跳转至最后一行的行首

1G或者gg:跳转至第一行行首

 

句间移动:

):下一句

(:上一句

 

段落间移动:

}:下一段

{:上一段

 

翻屏:

ctrl f:向前翻一屏

ctrl+b:向之前翻一屏

crtl+d:向下翻半屏

ctrl+u:向上翻半屏

 

关闭文件:

ZZ:命令模式下下保存退出

ZQ:不保存退出

 

命令模式下的字符编辑:

x:删除字符

#x:删除光标所在处的#个字符,包括他本身

xp:交换光标所在处的字符及其后面字符的位置

~:在当前光标所在处转换大小写

 

替换字符:

r:替换光标所在处的字符

-R:进入替换模式,一个个的替换

 

删除操作:

d:删除命令,结合光标跳转字符实现范围删除

d$:删除至行尾(不包括光标所在处的字母)

d^:删除至非空行首(不包括光标所在处的字母)

d0:删除至行首(不包括光标所在处的字母)

dw:删除至下一个单词的词首(都包括光标所在位置的字母)

de:删除至下一个单词的词尾

db:删除至前一个单词的词首或者当前单词的词首

dd删除光标所在行

D:从当前光标删除至行尾。(不包括光标所在处的字母)

wq:保存退出

不保存退出

x:保存退出

 

复制文本 

y:复制,与命令d类似(都包括复制光标所在位置的字母)

y0:复制到行首(不包括光标所在处)

y^:复制到非空行首(不包括光标所在处的字母)

y$:复制到行尾(不包括光标所在处的行尾)

yy:复制当前行

yw:复制当前位置到下一个单词词首(复制包括光标当前所在处的字母)

ye:复制当前位置到下一个单词词尾 (复制包括光标当前所在处的字母)

yb:复制当前位置到当前单词词首或上一个单词的词首(复制包括光标当前所在处的字母)

 

粘贴:

p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方,否则粘贴至当前光标所在处的前面。

P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方,否则粘贴至当前光标所在处的前面。

 

cd的区别在于c可以删除后立刻进入插入模式。

 

 

地址定界 :用于确定搜索范围或者替换范围

start_pos,end_pos #: 具体第#行,例如2表示第2行; 

#,#: 从左侧#表示行起始,到右侧#表示行结尾 

#,+#: 从左侧#表示的行起始,加上右侧#表示的行数 

2,+3  表示25行 

.: 当前行 

$: 最后一行 

.,$-1 当前行到倒数第二行 

%:全文相当于1,$

 

/pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被 pat2匹配到的行结束 #,/pat/ /pat/,$ v 使用方式:后跟一个编辑命令

删除

复制

w  file: 将范围内的行另存至指定文件中 

r  file:在指定位置插入指定文件中的所有内容

例如:1,/^U/dv

 

撤销改变 v

vu撤销最近的更改 v

#u撤销之前多次更改 v

撤消光标落在这行后所有此行的更改 v

 按Ctrl – r重做最后的“撤消”更改 v

重复前一个操作 v

n.重复前一个操作n次 

 

搜索文档 

查找 /PATTERN:从当前光标所在处向文件尾部查找 

?PATTERN:从当前光标所在处向文件首部查找 

n:与命令同方向 

N:与命令反方向v

 

替换:

s: 在扩展模式下完成查找替换操作 

格式:

s/要查找的内容/替换为的内容/修饰符 要查找的内容:可使用模式 替换为的内容:不能使用模式,但可以使用\1, \2, … 等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容 

修饰符:

i: 忽略大小写 

g: 全局替换;默认情况下,每一行只替换第一次出现 

gc:全局替换,每次替换前询问 v 

查找替换中的分隔符/可替换为其它字符,例如 

%s@/etc@/var@g

%s#/boot#/#i 

第一步:定边界

第二步:s功能替换

第三步:查找的内容用正则匹配,分隔符为@#

第四步:替换的内容可以引用,不能用正则

第五步:参数,g或者ic询问是否覆盖

 

 

vim寄存器 

     有26个命名寄存器和1个无命名寄存器,常存放不同的 剪贴版内容,可以不同会话间共享。 v 

     用ab,,z表示,用“寄存器表示,放在数字和命令之间 

如:

3"tyy 表示复制3行到t寄存器中

 "tp  表示将t寄存器内容粘贴 v 

未指定,将使用无命名寄存器 v 

10个数字寄存器,用01,…,9表示,0存放最近复 制内容,1存放最近删除内容。当新的文本变更和删除 时,1转存到22转存到3,以此类推。数字寄存器不能 在不同会话间共享。 v 

 

可视化和多窗口 v

允许选择的文本块 

面向字符 

面向行 ctrl-v 面向块 v 

可视化键可用于与移动键结合使用: 

w, ) , ,箭头等 v 

突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等。这就是可视化存在的最大意义。

 

vim FILE1 FILE2 FILE3 … 

:next 下一个 

:prev 前一个 

:first 第一个 

:last 最后一个 

:wall 保存所有 

:qall 退出所有 

:wqall

 

定制vim的工作特性:

 配置文件:永久有效 

全局:/etc/vimrc 

个人:~/.vimrc 

扩展模式:当前vim进程有效 v

(1) 行号 显示:set number, 简写为set nu 取消显示:set nonumber, 简写为set nonu v

(2) 括号成对匹配 匹配:set showmatch, 简写为set sm 取消:set nosm

(3) 自动缩进 启用:set ai 禁用:set noai v

(4) 高亮搜索 启用:set hlsearch 禁用:set nohlsearch v

(5) 语法高亮 启用:syntax on 禁用:syntax off v

(6) 忽略字符的大小写 启用:set ic 不忽略:set noic

(7) 文件格式 启用:fileformat=unix 不忽略: fileformat=dos v

(8) 设置文本宽度 :set textwidth=65 (vim only) :set wrapmargin=15 

 

 20160808作业:

4、如何设置tab缩进为4个字符?

在家目录下创建~/vimrc文件,添加参数tabstop=4.

5、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

cp -a /etc/rc.d/init.d/functions /tmp

vim /tmp/functions

%s@/etc/sysconfig@/var/log@g

6、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

vim /tmp/functions

:%s@^#\([[:space:]]\+\)@\1@


 

原创文章,作者:liuzhuo,如若转载,请注明出处:http://www.178linux.com/33709

(0)
上一篇 2016-08-12 09:01
下一篇 2016-08-12 09:01

相关推荐

  • 第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i sum_login=0 declare -i sum_nologin=0 while read line;do shell=$(echo $l…

    Linux干货 2017-03-05
  • 关于取路径名与基名的探讨和扩展-20160806

                          关于取路径名与基名的探讨和扩展     这两天学习grep  ,   egrep  ,  sed  &nb…

    Linux干货 2016-08-07
  • 初识Linux

    在这篇文章中你讲看到如下内容: 1.       计算机的组成及功能; 2.       Linux发行版之间的区别和联系; 3.       Linux发行版的基础目录及功用规定…

    Linux干货 2016-12-01
  • 文件查找工具—find命令总结

    描述:   find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 说明:  工作特点:  查找速度略慢; 精确查找;实时查找;可能只搜索用户具备读取和执行权限的目录…

    Linux干货 2016-08-18
  • RPM程序包管理

           RPM的全名“RedHat Package Manager”,当初这个是RedHad公司开发的一款程序包管理套件,随着RPM的不断完善,RPM逐渐成为众多linux发行版程序包管理器的代名词,那什么是RPM,为什么会用到RPM这个程序包管理工具那,接下来我一一揭晓。  &nb…

    Linux干货 2015-11-04
  • select与case组合循环

    select与case: 格式: select variable in list do 循环体命令 done 例1:     #!/bin/bash PS3="what do you want: " select i in a b c d         #在例2中省略…

    Linux干货 2016-08-22