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)
liuzhuoliuzhuo
上一篇 2016-08-12
下一篇 2016-08-12

相关推荐

  • 第二十二周作业

    1、请描述本地文件系统和分布式文件系统的特点; 本地文件系统: 本地文件系统主要是指Ext2,Ext3,Btrfs,XFS这类(很难概括,只好举例子),它们通常提供以下功能: 1.扩展性:随着系统容量的增加保持性能,不随容量变化而导致性能震荡。比如一个目录下的海量文件,在EXT2/3中由于目录设计问题会导致较大的性能问题。再比如EXT2/3中的Metadat…

    2017-09-23
  • Linux下搭建路由器

    客户端1:CentOS6.9 客户端2:CentOS7.3 路由器:router1(CentOS7.3)、router2(CentOS7.3) r router3(CentOS7.3) 1 准备工作 为了避免干扰,最好建立独立的网络。 打开VMvare的虚拟网络编辑器,点击添加网络按钮,添加VMnet11并且将左下角使用“本地DHCP服务将IP地址分配给虚拟…

    Linux干货 2017-08-20
  • 马哥教育网络20期+第四周练习博客

    1、  复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cd /home/ [root@localhost home]# mkdir tuser1 [root@localhost home]# cp -a /etc/skel&…

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

    一 .计算机的关键部位 cpu(运算器 控制器):正给计算机的中枢神经,对程序控制信息的处理和 对数据的运算 存储器:存储程序数据和各种信息指令 Input:起到将各个外部信息传递给计算机的作用 output:将计算机内部的各个信号数据及计算结果输出 二 .一些主流Linux发行版简介 linux发行版:linux只是一个操作系统,搭配其它软件发行的系统就是…

    Linux干货 2016-10-30
  • 配额-and-RAID

    配置配额系统 控制单个用户,或组在某磁盘上所能占的最大空间大小 配额是基于磁盘分区的,不基于文件 如何基于软件控制配额:          1、设置分区挂载选项          &nbsp…

    Linux干货 2016-08-29
  • 20160808课堂练习(sed工具)

    练习: 1、  删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符 # sed 's@^[[:space:]]\+@@' /etc/grub2.cfg                    2、删除/etc/…

    Linux干货 2016-08-10