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

相关推荐

  • N26-第八周作业-邢岩

    马哥门徒-N26-邢岩 1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;      在线的主机使用绿色显示;      不在线的主机使用红色显示; #!/bin/bash # Author: jeque# Des…

    2017-03-24
  • 网络这块一些有趣的感想

    还记的那天老师让我们做两台主机的nexthop就是自己的ip地址,然后互相ping测试能否互相联通的实验,昨晚之后我就在想能不能进行一些改进,因为在我看来这种级别的互相ping的前面一个网络段相同太没意思了。 接着我就尝试了几种IP地址 主机A 主机B 192.0.0.1 192.1.0.1 192.1.1.1 192.2.2.2 192.2.1.1 192…

    Linux干货 2016-09-13
  • vim的基本使用

    前言:     Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。    Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本…

    Linux干货 2017-07-30
  • 文件目录介绍

    对于操作系统的目录感觉总是记不住,今天结合上课笔记和自己的理解总结一下:/——-执行操作时总是要跳转到不同的目录,根是一个树状结构,下面介绍都是根下的目录以及相关介绍├── bin 存放用户使用的基本命令(可执行程序,二进制文件)、分区的时候不会单独给它分区├── boot  跟内核有关的文件├── cgroup &nbsp…

    Linux干货 2017-04-10
  • Web服务,http协议。

    一·web   1。web是一种网站服务器,C/S架构,比较流行的Apache,Nginx,IIS。客户能够去服务器请求资        资源。   2.使用http协议,服务器html或者xml格式文件,客户浏览器访问资源(url)。   3.过程包括服务器套接字监听直到和客户套接字建立…

    Linux干货 2015-07-04
  • 20170714上课LINUX入门

    1、安装centos6.9和centos7.3时的分区情况 /dev/sda1 mount /boot 1G – 主分区/dev/sda2 mount / 50G -主分区/dev/sda3 mount /app 40G -主分区/dev/sda4 1k 扩展分区/dev/sda5 swap 2G -逻辑分区(swap分区的大小一般为物理内存的2…

    Linux干货 2017-07-15