vim-初学笔记

vi: Visual Interface  可视化接口

vim: VI iMproved

vim是vi的升级,最大的功能是有高亮显示提升使用可视性

--------------------------------------------------------------------------

vim模式:

编辑模式  可以理解的为开始对整体文件的操作,输入模式

输入模式  是真的在文档中写入内容,同样编辑和末行模式是不能用的

末行模式  vim最强大的功能,可以对接相当多的功能也能直接使用sed正则表达式

--------------------------------------------------------------------------

模式转换:

编辑模式-->输入模式:

i: 在当前光标所在字符的前面,转为输入模式;

a: 在当前光标       后面,   输入模式;

o: 在   光标所在字符行的下方,新建一行,并转为输入模式;

I: 在当前光标所在行的行首,转换为输入模式

A:在当前光标所在    尾,转换为输入模式

O:在当前光标   行的上方,新建一行,并转为输入模式;

输入模式-->编辑模式:

ESC

编辑-->末行:

末行-->编辑:

ESC, ESC   (按Esc键)

一、打开文件

# vim /path/to/somefile

vim +#打开文件,并定位于第#行

vim + 打开文件,定位至最后一行

vim +/PATTERN  打开文件,定位至第一次被PATTERN匹配到的行

默认处于编辑模式

二、关闭文件

1、末行模式关闭文件

:q  退出

:wq 保存并退出

:q! 不保存并退出

:w  保存

:w! 强行保存

:wq --> :x  (等价)

2、编辑模式下退出

ZZ: 保存并退出   (大写)

三、移动光标(编辑模式)

1、逐字符移动:

h: 左

l: 右

j: 下

k: 上

#h: 移动#个字符          (#代表的数字的多少,一下不再赘述)

2、以单词为单位移动

w: 移至下一个单词的词首

e: 调至当前或下一个单词的词尾

b: 跳至当前或前一个单词的词首  (e,b两个是相对的前进后退)

#w: 移动#个单词

3、行内跳转

0:绝对行首

^: 行首的第一个非空白字符

$: 绝对行尾

4、行间跳转(大写G)

#G:跳转至第#行

G : 最后一行

末行模式下,直接给出行号即可

四、翻屏

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏

Ctrl+d: 向下翻半屏

Ctrl+u: 向上翻半屏

五、删除单个字符

x:  删除光标所在处的单个字符

#x: 删除光标所在处及向后的共#个字符  (先输入数字然后在输入x)

六、删除命令:d

d命令跟跳转命令组合使用;

#d,#de, #db

dd: 删除当前光标所在行

#dd: 删除包括当前光标所在的行在内的#行;

末行模式下,

startADD,endADDd  (当前地址,结束地址)

.   表示当前行

$   最后一行

+#  向下的#行

七、粘贴命令 p

p  如果删除或复制为整行内容,则粘贴至光标所在行下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;(小写向下)

P  如果删除或复制为整行内容,则粘贴至光标所在行上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;(大写向上)

八、复制命令 y

用法同d

九、修改;先删除内容,在转换为输入模式

c  用法同d命令

十、替换 R

R: 替换模式

十一、撤销编辑操作 u

u  撤销前一次的编辑操作

连续u命令可撤销此前的n次操作(最多50次,我没试过)

#u: 直接撤销最近#次编辑操作

撤销最近一次撤销操作:Ctrl+r (撤销u命令的撤销)

十二、重复前一次编辑操作

.   (没有看错,就是一个点)

十三、可视化模式

v   按字符选取 (小V少)

V   按矩形选取 (大V多)

十四、查找替换

/PATTERN

?PATTERN   反向查找 (从光标所在行方向往上查找)

n  从上向下

N  反向 向上查找

十五、查找并替换

在末行模式下使用s命令

ADDR1,[email protected]@[email protected]  (地址1,地址2s/内容/修改内容/全局替换g)

:.,$-1s/he/HE/g   (内容在末行模式下将全文he替换为HE)

%   表示全文内容(不用特意在标明)

练习:

1、将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum

%s/ftp:\/\/instructor\.example\.com\/pub/http:\/\/172.16.0.1\/yum/g     (\为转义)

%[email protected]://instructor\.example\.com/[email protected]://172.16.0.1/[email protected]    (同上等价,一样实现)

十六、使用vim编辑多个文件 (末行模式切换)

vim FILE1 FILE2 FILE3

:next 切换至下一个文件

:prev 切换至前一个文件

:last 切换至最后一个文件

:first 切换至第一个文件

:qa 全部退出

十七、分屏显示一个文件

Ctrl+w, s: 水平拆分窗口   (先按下Ctrl+w键在选择按s/v)

Ctrl+w, v: 垂直拆分窗口

在窗口间切换光标:

Ctrl+w, ARROW(上下左右键)

:qa 关闭所有窗口

十八、分窗口编辑多个文件

vim -O FILE1 FILE2 FILE3

vim -o : 水平分割显示

vim -O : 垂直分割显示

十九、将当前文件中部分内容另存为另外一个文件

末行模式下使用w命令

:w

:ADDR1,ADDR2w /path/to/somewhere

地址1,地址2/路径

二十、将另外一个文件的内容填充在当前文件中(末行模式)

:r /path/to/somefile

二十一、跟shell交互

:! COMMAND    (回车返回编辑窗口)

二十二、高级话题

1、显示或取消显示行号

:set number

:set nu

:set nonu  取消

2、显示忽略或区分字符大小写

:set ignorecase

:set ic

:set noic

3、设定自动缩进

:set autoindent

:set ai

:set noai

4、查找到的文本高亮显示或取消

:set hlsearch

:set nohlsearch

5、语法高亮

:syntax on

:syntax off

二十三、配置文件

/etc/vimrc    全局生效

~/.vimrc     当前用户生效  直接vim ~/.vimrc 输入内容就可以了,有这个文本就打开了,没有就自动创建一个,一样生效。

vim文件编辑后未保存,错误关闭,再次打开文件报错

1、以只读打开  2、无路如何都开始编辑 3、恢复为保存内容  4、删除前内容    5、退出终止     6、退出

未保存的文件会以“这个文件名.swp为后缀的形式出现在文件目录中

vim -r filename  直接将.swp相关内容写入file中。

如果确定没有问题就在目录中 rm 文件就可以了。(数据无价!删除提前确认)

在末行模式编辑下千万不用按小键盘区的数字键会坑自己的~(惊喜等待自己去发觉)

时间: 2024-10-19 16:27:29

vim-初学笔记的相关文章

vim使用笔记

vim使用笔记 -------------光标移动--------------------k          上                                         (10k   向上移动10行)j           下h          左l           右 shift+G  文本最后一行 o 进行光标行下一行编辑模式 CTRL + f        下一页                       (4  ctrl+f  向下翻4页)CTRL +

Vim学习笔记

1.复制粘贴操作 vim有12个粘贴板,分别是0.1.2.....9.a.".+: 用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到"(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny(注意带引号)完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下

初学笔记(C#事件)

1.声明事件      EventHandler是一个预定义的委托,它定义了一个无返回值的方法.在 .Net Fromwork中,他的格式: public  delegate  void EventHandler (Object  sender, EvenArgs  e) 其中sender的类型为Object,表示时间发布者本身,e用来传递事件的相关信息,数据类型为EvenArgs及其派生类. 标准的EvenArgs并不包含任何事件数据, 因此EventHandler专用于表示不生成数据的事件的

lisp初学笔记

学习任何知识,都不能仅仅把它们当做知识,更重要的是要把它们在实际编程实践中应用起来,持有这样的学习观念才不至于让你变成学究式的活字典,对于程序员来说这一点尤其重要,你学习的任何语言知识,一定要在实际的程序编写过程中不断练习.不停实践,纸上得来终觉浅,绝知此事须躬行. LispBox 实际上是把 Emacs.Slime.Clozure CL 以及 QuickLisp 集成到一起,使用 LispBox 做开发环境就相当于选择了 Emacs 作为编辑器.选择 Slime 作为交互界面,那么一定要熟悉

flex入门--初学笔记1

环境:flashBuilder + eclipse 4.2 基本控件: 1 <mx:Script> 2 <![CDATA[ 3 import mx.controls.Alert; 4 public function showMsg(msg:String):void{ 5 mx.controls.Alert.show(msg); 6 } 7 ]]> 8 </mx:Script> 9 <mx:Panel title="常用控件" width=&qu

AS3 初学笔记 actionscript-之变量

变量 变量可用来存储程序中使用的值.要声明变量,必须将 var 语句和变量名结合使用.在 ActionScript 2.0 中,只有当您使用类 型注释时,才需要使用 var 语句.在 ActionScript 3.0 中,总是需要使用 var 语句.例如,下面的 ActionScript 行声明一个名 为 i 的变量: var i; 如果在声明变量时省略了 var 语句,则在严格模式下会出现编译器错误,在标准模式下会出现运行时错误.例如,如果以前未 定义变量 i,则下面的代码行将产生错误: i;

Linux下Vi/Vim使用笔记

Linux下Vi/Vim使用笔记 启动和关闭vim vi 打开 Vi/Vim 打开 Vi/Vim 并加载文件 <file> vi <file> ZQ 无条件退出 :q! 无条件退出 ZZ 存盘并退出 :wq 存盘并退出 vim编辑器的三种模式:一般模式.编辑模式和命令行模式在一般模式中可以进行删除.复制和粘贴的功能,但是无法编辑文件内容. 从一般模式切换到编辑模式可以按下i.I.o.O.a.A.r.R键. 注意区分当前是INSERT还是REPLACE模式! i: 插入,从目前光标所

js&#39;初学笔记

之前看过一个博主说的学习前端养成写博客的习惯,我慢慢学着在上面写点东西,记录我的学习. 这段时间把之前学的js基础补上一点,学了一些对数组和字符的操作,split(),将字符串变成数组.join(),数组变为字符串.conca()连接数组. charAt(),charCodeAt(),formCharCode(),slice(start,end),substring(),substr(start,length);indexOf(); 有一些我就不多说了,在这里记下来,以后看看,有兴趣可以看看山冈

VIM学习笔记(二)

VIM学习笔记第二篇,由于需要整理文档并且还要工作,并不能达到每天学习并发表一篇,不过勤于记录就好~ 2.查找查找命令是“/String”,注意,.*[]^%/\?"$有特殊含义,查找他们需要前面加一个"\",使用“n”查找下一个,查找第三个匹配,使用“3n”,“N”重复前一次查找."?"与“/”类似,但是反向查找,功能也相反.-------------------------------------------------------忽略大小写:set

网站初学笔记3-HTML实用元素

HTML中链接邮件地址: <!DOCTYPE html><html><body> <address>Written by <a href="mailto:[email protected]">Donald Duck</a>.<br> Visit us at:<br>Example.com<br>Box 564, Disneyland<br>USA</addres