0050 Linux VIM 命令

1.  模式切换

vim的模式 $ vi filename 进入normal 模式,这是命令模式,用于执行大多数常用的编辑命令,不能输入

敲i 进入 insert 模式,这是正常的编辑模式,按Esc 可以回到 normal 模式

在normal 模式下输入 : (冒号) 进入底行模式,也是执行命令的模式,用的最多的是查找

不管在 insert 模式还是底行模式,按 Esc 就能回到 normal 模式 insert 模式和底行模式是不能直接相互切换的,只能通过 normal 模式切换

2. 保存退出

保存,退出,环境变量
:w :  将编辑的数据写入硬盘档案中(常用)
:w!:   若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!

:q:   离开 vi (常用)
:q! :  若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。

:wq:   储存后离开

:x :  储存后离开

:wq! :  强制储存后离开

ZZ:   这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!

:w [filename]:   另存为
:r [filename]:   在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到光标所在行后面
:! :  command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如 『:! cat ./test』即可在 vi 当中察看当前文件夹中的test文件中的内容

3. 环境变量

:set nu :  设置行号(常用)

:set nonu :  取消行号(常用)

:set hlsearch :  设置高亮度查找

:set nohlsearch :  取消高亮度查找

:set backup :  自动备份文件

:set ruler :  开启右下角状态栏说明

:set showmode :  显示左下角的INSERT之类的状态栏

:set backspace={0,1,2} :  设置退格键功能。为2时可以删任意字符。为0或1时仅可以删除刚才输入的字符。

:set all :  显示目前所有的环境参数值

:set :  显示与系统默认值不同的参数值

:syntax on/off : 是否开启依据相关程序语法显示不同的颜色

:set bg=dark/light : 是否显示不同的颜色色调

4. 光标操作

h 或 向左箭头键(←):   光标向左移动一个字符

20h或者20(←):  光标向左移动20个字符,

j 或 向下箭头键(↓):  光标向下移动一行
20j或者20(↓):  光标向下移动20行,

k 或 向上箭头键(↑):  光标向上移动一行
20k或者20(↑):  光标向上移动20行

l 或 向右箭头键(→):   光标向右移动一个字符
20l或者20(→):  光标向右移动20字符,

^ : 移动这一行的开头,与$相对应

Ctrl + f :   屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
Ctrl + b:   屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
Ctrl + d :  屏幕『向下』移动半页
Ctrl + u:   屏幕『向上』移动半页
Ctrl + e:   屏幕『向下』移动一行
Ctrl + y :  屏幕『向上』移动一行
+ :  光标移动到非空格符的下一列
- :  光标移动到非空格符的上一列
n<space>:   那个 n 表示『数字』,按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
n<Enter> :  n 为数字。光标向下移动 n 行(常用)
0:   或功能键[Home] 移动光标到下一行最前面,并进入到insert状态
$:   或功能键[End] 移动到这一行的最后面字符处(常用),这里的$在正则里面表示是结尾的意思,这样理解一下就能记住
H:   光标移动到这个屏幕的最上方那一行的第一个字符,H你就把它记成是header的缩写,这样就好记了
M:   光标移动到这个屏幕的中夬那一行的第一个字符,M你就把它记成middle的缩写
L:   光标移动到这个屏幕的最下方那一行的第一个字符,L你就把它记成last的缩写
G :  移动到这个档案的最后一行(常用)
nG n:   为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行
gg :  移动到这个档案的第一行,相当于 1G  (常用)

5. 删除,复制,粘贴,撤销

x, X:   在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx n:   为数字,连续向后删除 n 个字符。举例来说,我要连续删除光标后 10 个字符, 『10x』。
nX n:   为数字,连续删除光标前面的 n 个字符。举例来说,我要连续删除光标前的 10 个字符, 『10X』。

dd:  删除光标所在的那一整行(常用)
yy:  复制光标所在的那一行(常用)

ndd:  n 为数字。删除光标所在行向下 n 行,例如 20dd 则是删除 20 行(常用)
nyy:  n 为数字。复制光标所在行向下 n 行,例如 20yy 则是复制 20 行(常用)

d1G:  删除光标所在行到第一行的所有数据

y1G:  复制光标所在行到第一行的所有数据

dG:  删除光标所在行到最后一行的所有数据
yG:  复制光标所在行到最后一行的所有数据

d$:  删除光标所在处,到该行的最后一个字符
y$:  复制光标所在的那个字符到该行行尾的所有数据

d0:  那个是数字的 0 ,删除光标所在处,到该行的最前面一个字符
y0:  复制光标所在的那个字符到该行行首的所有数据

p, P :  p将复制的数据,粘贴在光标的下一行,P将复制的数据,粘贴到光标的上一行
J:   将光标所在行不下一行的数据结合成同一行
c :  重复删除多个数据,可以通过上下键来决定删除光标上面的,还是下面的
u :  撤销。(常用)
Ctrl + r:   撤销的撤销。(常用)

6  选择,查找 ,替换

v :   字符选择,会将光标经过的地方反白选择!
V :   行选择,会将光标经过的行反白选择!
Ctrl + v “:  区块选择,可以用长方形的方式选择资料
y :  将反白的地方复制起来
d :  将反白的地方删除掉

/string:   向光标之下寻找一个名称为string字符串
?string:   向光标之上寻找一个名称为string字符串

n:  正向查找,搜索出的string,可以理解成next

N:  反向查找,搜索出的string,可以理解成Not next

:n1,n2s/string1/string2/g :   这里的n1是查找的开始行数,n2是查找结束的行数。【:2,7s/ddd/fff/g】在第2行,第7行之间,将ddd替换成fff
:1,$s/string1/string2/g :  从第一行到最后一行寻找 string1 字符串,并将该字符串替换为 string2 !(常用)
:1,$s/string1/string2/gc :  从第一行到最后一行寻找 string1 字符串,并将该字符串替换为 string2 !且在替换前显示提示字符给用户确认 (confirm) 是否需要替换!(常用)

7. 文件恢复

目前主要的编辑器都有恢复功能,vim也不例外。vim是通过“保存”文件来挽回数据的。
每当我们在用vim编辑时,vim都会自动在被编辑的文件的目录下面再新建一个名为filename.swap的文件。这就是一个暂存文件,我们对文件filename所做的操作都会被记录到这个文件当中。如果系统意外崩溃,导致文件没有正常保存,那么这个暂存文件就会发挥作用。下面用一个例子来说明(Note:我用的是Ubuntu)。
打开终端,输入命令,将etc目录下面的manpath.config复制到tmp目录下面,并且更改当前工作目录为tmp:
cp /etc/manpath.config /tmp
cd /tmp
用vim编辑manpath.config文件:vim manpath.config。

我们在vim的一般模式下按下Ctrl+z组合键,vim就会被丢到后台执行。回到命令提示符环境后,我们模拟将vim的工作不正常中断。

kill -9 %1;强制杀死制定的进程。

这样导致暂存盘无法通过正常的流程结束,所以暂存文件不会消失,而是继续保留下来。当再次编辑那个文件时(输入命令vim manpath.config),出现(ubuntu 11.10):

这时,有六个按钮可以使用:

O(pen for Read-Only):打开成只读文件。

E(dit):用正常方式打开要编辑的文件,并不会载入暂存文件的内容。这很容易出现两个用户相互改变对方的文件的问题。

R(ecover):加载暂存文件的内容。

D(elete):如果你确定这个暂存文件是没有用的,则可以删除。

Q(uit):不进行任何操作,回到命令行。

A(bort):忽略这个编辑行为,和Q类似。

需要注意的是:这个暂存文件不会应为你结束vim后自动删除,必须要手动删除。否则每次打开对应的文件时都会出现这样的提示。

 8.  宏

这是一个ini类型的配置文件,可以看到每一行的最前面有一个逗号,现在如果需要将每行前面的逗号去掉,怎么办?在第一行行首按x,然后按j,然后按x...这样重复下去?确实,我最开始也是这样的,但如果这个文件有100行要这样修改呢?或者1000行?

;=====================================================================================
;This is a sample configuration file when upgrading XXX using InstallShield.
;Author:        ini_always
;Date:          8/24/2011
;Last modified: 9/20/2011
;Note: Install script does NOT verify whether the configuration file is in a "WELL"
;format, a WRONG format may lead to installation failure.
;If more information is needed, please check the document for details.
;=====================================================================================

  

好吧,少废话,进入正题。所谓宏,在vim里面是指某种特定顺序的一系列操作,我们可以录制自己的操作序列,然后重复这个序列多次,以简化某种重复的操作。vim宏有录制和播放的过程,录制就是你教给vim该怎么操作,播放就是vim照着你教的进行自动操作。因此,对于上面的文件处理,首先要进行宏录制:

1.把光标定位在第一行;

2.在normal模式下输入qa(当然也可以输入qb, qc, etc,这里的a, b, c是指寄存器名称,vim会把录制好的宏放在这个寄存器中)(PS:如果不知道什么是vim的寄存器,请自行放狗搜之);

3.正常情况下,vim的命令行会显示“开始录制”的字样,这时候,把光标定位到第一个字符(按0或者|),再按x删除,按j跳到下一行;

4.normal模式下输入q,结束宏录制。

好了,经过以上步骤,我们定义了一个存储在寄存器a中的宏,它的操作序列是:0->x->j,也就是跳到行首,删除,跳到下一行。

现在,第一行已经删除了行首的逗号,而且光标也已经在第二行,现在,在normal模式下输入@a,以播放我们刚录制好的存在寄存器a中的宏。于是,第二行行首的逗号也被删除,光标停在了第三行。

这也不简单啊?你肯定会这样想,要删除100行,我还得输入100个@a,我还不如手动删除呢。呵呵,vim早就想到了,输入[email protected],好了,剩下的7行全部搞定了。(PS:在命令前面加数字,就是代表要执行这个命令多少次)

当然,这个例子很简单,但也很典型。利用好vim的宏,可以使一些原本很无聊的工作要简单很多。

9    ( . ) 命令

重复上次操作

时间: 2024-10-10 11:04:53

0050 Linux VIM 命令的相关文章

linux vim 命令使用

基本上vim可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode) 模式切换方法 在命令模式输入“i”,进入插入模式,可以编辑文本内容,编辑完成之后,[esc]键退出编辑,进入命令行模式. 在命令行模式下输入":"进入底行模式,在底行模式输入q,wq,q!可以退出 : w filename (输入 「w filename」将文章以指定的文件名filename保存) : wq (输入「wq」,存盘并退出v

Linux Vim命令详解

vi: o  处于下一行编辑模式 A  处于编辑的后面  ==>END gg 文件的开头 Shift + G 文件结尾 $ 文件行结尾 ^ 文件行开头   ==>  0也是到行开头 u 回退 / 从前向后搜索 ?从后向前搜索 n next 向下走 N 向上走 hljk: 左右下上 m,n  s/stu/hello/g 个人习惯: shift + G -> :?hello ->n set num    设置文件编号 set hlsearch 设置搜索高亮显示 set ignoreca

linux VIM基本命令

linux VIM命令: vim 在命令行中输入vim,进入vim编辑器 Esc 退出i(插入)命令进行其他命令使用 :sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续编辑在shell命令下, 运行ctral+l完毕清屏 :set number或者:set nu 使编辑中的文件显示行号 :set nonumber或者:set nonu 与上一条命令相反,不显示行号 :help i 查看插入命令帮助 /Fedora 查找Fedora字符 :s /Fedora/Red

Linux CentOS7 中vim命令的使用

一. vim介绍 vim 是vi 的升级版本:可带颜色显示 1. 安装vim yum install -y vim-enhancedvim /etc/passwd 2. 三种模式: 一般模式:dd p yy  编辑模式:编辑文件内容 命令模式::/ ? 二. vim颜色显示和移动光标 1. vim 可以根据文件的路径和名字显示颜色 cp /etc/passwd /tmp  vim /tmp/passwd 查看就无颜色 /etc 下会显示颜色,是他的特性.cp /etc/fstab /tmpvim

linux下vim命令汇总

一. 进入vi的命令 vi filename : 打开或新建文件,并将光标置于第一行首 vi +n filename : 打开文件,并将光标置于第n行首 vi + filename : 打开文件,并将光标置于最后一行首 vi +/xxx filename:打开文件,并将光标置于第一个与xxx匹配的串处 vi -r filename : 在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 二. 移动光标类命令 h :

LINUX基础命令的使用以及vim的简单命令

一 命令提示符说明 [登录用户@主机名 工作目录]# 二 Linux命令格式 命令字  [选项]  [参数1] [参数2] [ ] 表示里面内容可有可无 选项:如果是单个字符,用-               如:# ls -l 如果是一个单词,用--              如:# ls --color 多个单个字符的选项可以合并一个-   如:# ls -l -h = # ls –lh 三 基本命令及其说明 1. 基本命令 # uname -r//查询内核 # cat /etc/redha

linux 的vim命令详解

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器x q     退出记录模式 @x     播放记录在x寄存器中的宏命令 稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模 式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次.这个在文本的批处理中是非常有用的. 同时编辑多个文件 在vim众多

[工作需求]linux常用命令以及vim常用命令

一.             Linux 常用命令 mkdir dirname新建文件夹 cd ~ 进入自己的家目录 cd dirname 进入名字为dirname的目录: l 显示当前文件夹下的文件和文件夹名称: myrm  filename 删除名字为filename 的文件: myrm –r dirname 删除名字为dirname目录:(涉及到文件夹的用参数 -r) mv filename1 filename2 将文件1重命名为文件2: mv filename1 dirname 将文件1

最常用的linux命令(包括svn和vim命令)

本盘讲述linux环境最常用的一些命令,包括svn版本控制使用的命令和vim编辑命令.本文为原创,如需转载,请著名来源:http://blog.csdn.net/qq_22327455 1.目录跳转:cd 2.查看:ll    ls 3.连接服务器:ssh 用户名@id地址  如:ssh [email protected] 4.查看ip地址等信息:ifconfig 5.备份文件: 备份单个文件:cp 文件名  新的文件名   如:cp index.php  index_01.php 备份目录:c