Vim实战指南(一):基础编辑命令

原文地址:Vim实战指南(一):基础编辑命令git

Introduction

VimEmacs做为两大神级文本编辑器各有利弊,本实战指南不加讨论的介绍Vim.
本实战指南不是教你按照Vim的键位图来编辑文本,而是从实战的角度,教你如何快速的用Vim来开发你的程序,节省你的开发时间。
为何不用IDE?IDE当然强大,但并非每个环境都有现成的IDE可用,尤为是SSH远程计算机,就一个bash解析器可使用,彻底没有图形化界面。IDE的另外一个弊端就是须要反复的安装升级更新。
固然IDE也有省事的时候,例如开发Java和C#,IDE自带的debug调试工具,能够很是便利的调试程序。
可是在类Unix系统上开发,我仍是推荐学习熟练地使用Vim。何为熟练?彻底舍弃你的鼠标,只使用键盘快速的进行开发即为熟练。
介绍Vim(全称是vi improved)以前,天然首先要从vi(全称是visual editor)开始。
对于初学者来讲,vi的学习曲线可能比较陡峭。vi分为插入模式(insert mode)以及命令行模式(command mode)。bash

vi

在Unix/Linux的bash下,输入vi来编辑文本。注意,当你使用vi修改文本时,并非真正的修改了存放在磁盘上的文件,而是修改了该文件在内存中的拷贝副本。只有当你显示的保存文件时,该内存中的副本才会被写入磁盘,并覆盖文件。app

$ vi testfile

Command Mode

在命令行模式下,vi的经常使用命令能够按如下方式速记:编辑器

编辑类

i: insert,进入插入模式,新字符插入在光标前
a: append,进入编辑模式,新字符插入在光标后
c: change,修改
d: delete,删除
p: put,放置,能够将d删除的内容,放置在光标后面
y: yank,拷贝
r: replace,替换,和c不一样在于,没必要进入编辑模式便可替换
s: substitute,替代,和c不一样在于,能够只修改一个字符而非整个字
x: x,和d不一样在于,能够只删除一个字符而非整个字
~: change case,替换大小写
.: repeat,重复上一条命令
u: undo,撤销上一条命令
J: join,将两行合并为一行工具

保存退出类

q: quit,退出,若是有未保存的修改则没法退出
q!: force quit,强制退出
w: write edits to disk (save file),保存文件
w!: force write,强制保存
ZZ: quit and save edits,保存文件并退出
e!: revert your changes,回滚全部修改至原始状态学习

移动光标类

h: left,向左移动光标
j: down,向下移动光标
k: up,向下移动光标
l: right,向由移动光标
0: digit zero, move to beginning of line,移动到行首
$: move to end of line,移动到行尾
w: move by word,按字向后移动光标(包括标点)
W: move by large word,按字向后移动光标(忽略标点)
b: move backward by word,按字向前移动光标(包括标点)
B: move backward by large word,按字向前移动光标(忽略标点)
e: move to end of word,移动到字尾(包括标点)
E: move to large end of word,移动到字尾(忽略标点)
G: go to end of the file,移动到文件末尾最后一行ui

记住,vi对于命令区分大小写,I和i不是同一个命令。vi的命令不会显示在屏幕上,每个命令后面不须要敲击回车(Enter)。
当你不知道你处于哪一个模式下时,连续按3下Esc总能让你回到命令行模式。命令行

组合命令

vi的便捷性在于你能够组合命令,经过数字+字母,或者字母+字母,甚至数字+字母+字母,能够将单命令构造出你想操做的组合命令debug

3h: 3 left,向左移动3次光标,等同于lll
3W: 3 move by large word,按3个字向后移动光标(忽略标点等)
1G: go to line 1,移动到文件首行
3G: go to line 3,移动到文件第三行
cw: change, move by word,修改后面的一个字
c3b: change, move backward by 3 words,修改前面的三个字
c$: change, move to end of line,修改光标后面整行文字
c0: change, move to beginning of line,修改光标以前整行文字
dw: delete word,删除字
d3w: delete 3 words,删除三个字
3p: put 3 times,重复放置3次3d

甚至你能够重复组合

cc: change line,修改整行
dd: delete line,删除整行
3dd: delete 3 line,删除三行
yy: yank line,拷贝整行

Summary

上述的基本命令必定要熟记于心,增强练习。不要以为命令太多,仔细研究会发现命令之间有规律可循。只须要记住几个基础命令,经过场景构造即可以获得组合命令,这也是vi的便利以及魅力所在。

相关文章
相关标签/搜索