Vim笔记

vi介绍

vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。

 

vim介绍

1. vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;
2. 因为程序简单,编辑速度相当快速。
3. vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。
4. vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。
5. vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。

 

 

vim配置文件

Windows系统的配置文件是vim安装目录下的vimrc文件。
Linux系统,RHEL和CentOS的配置文件是/etc/vimrc,Debian和Ubuntu的配置文件是/usr/share/vim/vimrc。
Mac OS X的配置文件是/usr/share/vim/vimrc。

 

vi的使用

基本上vi可以分为三种状态,分别是一般模式、编辑模式和命令行模式,各模式的功能区分如下:

一般模式:
以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容, 也可以使用复制、粘贴来处理你的文件数据。

编辑模式:
在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下【Esc】即可退出编辑模式。

命令行模式:

输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中, 可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!

 

基本操作

 

保存与退出

保存但不退出vim    :w

保存并退出vim    :wq

退出vim,但不保存更改    :q!

用其它文件名保存    :w filename

在现有文件中保存并覆盖源文件    :w! filename

非正常退出都会在相应的位置保留.swp文件。并且这是隐藏文件,看不见
每次再vim 的时候就会出现告警信息并且导致无法编辑。这个时候如果想要保存,那么先:revover--->编辑--->wq!-->删除对应的.swp文件(用rm -rf ./*.swp)。如果不想保存,那么直接删除.swp文件就可以了 。

 

剪切: 

dd    剪切游标所在行整行 
d^    剪切至行首,或d0
d$    剪切至行尾 
dw    剪切一个word 
dG    剪切至文件尾 

 

撤销删除

撤销最近一次修改(可以重复使用)    u
恢复上一步被撤销的操作 Ctrl+r

 

复制粘贴

光标放到第6行,
输入    2yy
光标放到第9行,
输入    p

此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。

 

复制粘贴出现缩进问题

:set paste    使得vim进入粘贴模式,则粘贴过来的内容能够保持原来的格式

但是在粘贴插入模式下代码是不会自动按格式缩进的,需要使用nopaste设置回来

:set nopaste

 

同一个窗口中同时编辑多个文件

1. 如果在终端中开没有打开vim,可以:

横向分割显示:

vim -O filename1 filename2 

纵向分割显示:

vim -o filename1 filename2  

2. 如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件:

横向分割显示:

:vs filename

纵向分割显示:

:sp filename  

其中,vs可以用vsplit替换,sp可以用split替换。

如果finename不存在,则会新建该文件并打开。

3. 关闭窗口

关闭光标所在的窗口:

:q  
#或  
:close 

关闭除光标所在的窗口之外的其他窗口:

:only  

关闭所有窗口:

:qa 

4. 切换窗口

打开了多个窗口,需要在窗口之间切换时:

ctrl + w w

即按住ctrl键,再按两下w键。

或者ctrl + w <h|j|k|l>

即按住ctrl键,按一次w键,再按一次表示方向的h或j或k或l,则光标会切换到当前窗口的 左|下|上|右 侧的窗口

 

搜索字符串

(1)要自当前光标位置向上搜索,请使用以下命令:   

/pattern   
Enter   

其中,pattern 表示要搜索的特定字符序列。   

(2)要自当前光标位置向下搜索,请使用以下命令:      

?pattern
Enter  

按下 Enter 键后,vim将搜索指定的 pattern,并将光标定位在 pattern 的第一个字符处。要搜索 pattern 的其他匹配,请按n或N:    

n,继续朝同一方向搜索pattern。   
N,反方向进行搜索。  

如果vim未找到指定的 pattern,光标位置将不变,屏幕底部显示以下消息:   

Pattern:   未找到   

 

设置/取消行号

设置行号

:set nu

取消行号

:set nonu

 

多行代码前后移动一个tab

一、连续的十几行到50行内的左右移动:      

1. 第m行到第n行右移一个tab          

:m,n>

2. 第m行到第n行左移一个tab          

:m,n< 

二、连续的I行的左右移动(I > 100):          

向左:          

1.移动到要处理的首行,输入ma          

2.移动到要处理的尾行,输入<'a          

向右,即将第二个命令中的 '<' 改为 '>'即可。

 

Tab设置为4个空格

对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:
TAB替换为空格:

:set ts=4
:set expandtab
:%retab!

空格替换为TAB:

:set ts=4
:set noexpandtab
:%retab!

加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。

 

移动编辑位置操作

  • h Move left
  • j Move down
  • k Move up
  • l Move right
  • w Move to next word
  • W Move to next blank delimited word
  • b Move to the beginning of the word
  • B Move to the beginning of blank delimted word
  • e Move to the end of the word
  • E Move to the end of Blank delimited word
  • ( Move a sentence back
  • ) Move a sentence forward
  • { Move a paragraph back
  • } Move a paragraph forward
  • 0 Move to the begining of the line
  • $ Move to the end of the line
  • 1G Move to the first line of the file
  • G Move to the last line of the file
  • nG Move to nth line of the file
  • :n Move to nth line of the file
  • fc Move forward to c
  • Fc Move back to c
  • H Move to top of screen
  • M Move to middle of screen
  • L Move to botton of screen
  • % Move to associated ( ), { }, [ ]

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值