Liunx 命令行与shell脚本编程大全 第五章学习笔记(Vim 编辑器使用详解 解释+图示)

来源:互联网 发布:淘宝闲鱼能小二介入 编辑:程序博客网 时间:2024/05/19 14:56

作为一个Linux 菜鸟中的老鸟!!你必须熟悉一种linux上的编辑器,vim、Emacs、KDE、GNOME,随便你喜欢哪一种,今天我就总接下Vim的使用详解,,这样你就可以快速的在命令行下使用键盘修改文件(少碰鼠标可以提高X格)。

GUN项目将vi编辑器移植到开源世界时就注定我们要记命令!!


1. Vim 基础

    Vim编辑器在内存缓冲区中处理数据。启动Vim编辑器,若未指定文件名,Vim会新开一段缓冲区域来编辑,若是文件已经存在Vim会将文件的整个内容都读到缓冲区准备编辑。最初Vim编辑窗口显示了文件内容,并在窗口底部显示一条消息行。如果文件内容未占满整个屏幕,Vim会在非文件内容行放置一个波浪线。



 底部的消息行显示了在编辑文件的信息,根据文件状态以及Vim安装时的默认设置,如果文件是新建的,会出现[New

 File]。

    Vim编辑器有两种操作模式:

        普通模式;

        插入模式;

当你打开要编辑的文件时(或新建一个文件时),Vim会进入普通模式。在普通模式中,Vim编辑器会将按键解释成命令。

在插入模式下,Vim会将当前光标位置中输入的每一个健都插入到缓冲区中。(进入插入模式按i即可,退出Esc)

在普通模式中,可以使用方向键在文本中移动光标.如果恰巧在一个古怪的没有定义方向键的终端连接上,Vim命令中有用来移动光标的命令。

h:左移一个字符

j:下移一行

k:上一一行

l:右移一个字符

在大的文本文件中一行一行的移动会特别的麻烦,Vim提供了一些命令来帮助提高速度:

PageDown(Ctrl+F):下翻一屏数据

PageUp(Ctrl+B):上翻一屏数据

G:移到缓冲区最后一行

num G:移动到缓冲区第num行

gg:移动到缓冲区第一行

Vim编辑器在普通模式下有一个特别的功能叫命令行模式。命令行模式提供了一个可供输入额外的命令来控制Vim中行为的交互命令行,要进入命令行模式,在普通模式下按下冒号件,光标就会移动到消息行,冒号出现了,等待输入命令。

在命令行模式下有几个命令将缓冲区的数据保存到文件中 并退出vim:

q:如果未修改缓冲区数据,退出;

q!:取消对缓冲区数据的修改并退出;

 w filename:将文件保存到另一个文件名下;

wq:将缓冲区中数据保存到文件中并退出;


2、编辑数据

在插入模式下,可以向缓冲区插入数据,然而有时你需要在将数据输入到缓冲区后添加或删除;

在普通模式下,Vim编辑器提供了一些命令来编辑缓冲区中的数据;

                                                       vim 编辑命令(普通模式下)

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

命令                                        描述

x                                        删除当前光标所在位置的字符;

dd                                     删除当前光标所在行;

dw                                     删除当前光标所在位置的单词;

d$                                     删除当前光标所在位置至行尾的内容;

J                                        删除当前光标所在行行尾的换行符(拼接行);

u                                       撤销前一编辑命令;

a                                       在当前光标后追加数据;

A                                       在当前光标所在行行尾追加数据;

r char                                用char替换当前光标所在位置的单个字符;

R text                                用text覆盖当前光标所在位置的数据,知道按下ESC健

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

有些编辑命令允许使用数字修饰符来之定重复该命令多少次,比如,命令2x会删除从光标当前位置开始的两个字符,命令5dd会删除从光标当前所在行开始的5行。


3、复制和粘帖

剪切和粘帖相对比较容易些。在上面的讲述中你可以看到删除命令,但在Vim删除数据时,实际上它会将数据保存在单独的一个寄存器中,可以使用p命令取回数据。

eg:使用dd命令删除一行文本,然后将光标移动到缓冲区中某个要放置该行文本的地方,输入p命令,p命令就会将文本插入到当前光标所在之后的行,p可以和任何删除命令一起搭配使用。

复制文本则比较复杂一点,Vim中的复制命令是 y(yank), 你可以与y使用和d命令相同的第二字符(yw表示复制单词,y$表示复制到行尾),在复制文本后将光标移动到想放置文本的地方,输入p命令,复制的文本就会出现在该位置。--------------->复制的复杂指出在于,由于不会影响到你复制的文本,就没有办法看见到底是怎么操作的,所以很难确定到底复制了什么,知道粘帖操作之后才能明白,但是vim有另外一个功能解决这个问题。

可视模式:会在移动光标时高亮显示文本,所以可以用可视模式来选取要复制的文本,要进入可视模式,移动光标到要开始复制的位置,并按下v健。这是光标所在位置的文本已经被高亮显示了,下一步只需要移动光标覆盖想要复制的文本即可,在覆盖了想要复制的文本后,按下y健来激活复制命令。现在寄存器中已经有了要复制的文本,移动光标到

你要放置的位置,使用p命令粘帖。

1、在普通模式下,按下v健,并移动光标复制文本,y激活复制命令


2、p命令执行粘帖



4、查找和替换

使用Vim命令轻松的查找缓冲区中的数据。要输入一个查找字符串,按下/,光标会跑到消息行。然后Vim会显示斜线,输入要查找的文本,按下回车,vim会有回应。

继续查找下一个单词。使用n(next)。

替换命令可以快速替换单词:

命令行模式下替换命令的格式

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

:s/old/new/            vim会跳到old第一次出现的地方并用new来替换

:s/old/new/ g         替换所有old

:n,ms/old/new/g       替换行号n和m之间的所有old

:%s/old/new/ g         替换整个文件中所有old

:s/old/new/ gc         替换整个文件中所有old,并在每次出现时提示。



上面是一些基本的vim使用命令,需要熟记,这样可以快速编辑文本。

参考:linux命令行与shell脚本编程大全。


0 0