vim 简介
来源:互联网 发布:创建淘宝店铺 编辑:程序博客网 时间:2024/06/05 05:14
快速了解:
在终端输入 vim filename 对文本进行编辑
注意终端下方,连按ESC就进入普通模式(normal mode),再按 i 进入插入模式(insert mode)
在插入模式下,就可以开始打字输入了,用方向键控制光标,或用鼠标控制光标
按ESC进入普通模式,输入 :w
注意终端下方,按回车即可保存
按ESC进入普通模式,输入:wq
注意终端下方,按回车即可保存并退出
而按ESC进入普通模式,输入:q!
再按回车即可强制不保存退出
下面的知识,在终端输入vimtutor即可学习,一般1个小时就可以掌握,有空再花10分钟复习一下,基本就能记住,然后就happy-lucking了
如果想熟悉使用光标定位符h,j,k,l,e,w,b,可以玩这个网页游戏 http://vim-adventures.com/
## vimtutor
1. insert mode
i insert的简写,在光标前插入
a append的简写,在光标后添加
A Append的简写,在行尾添加
2. normal mode
光标移动
h 左
j 下
k 上
l 右
$ 行尾,$也是各种正则表达式表示末尾的定位符
0 行首
G 文本尾
gg 文本首
e end简写,单词尾
w word简写,单词首
b before的简写,上个单词首
ctrl+g 显示当前文件信息: 文件名,多少行,百分比位置
123G 跳转到123行
ctrl+i 恢复到历史之前的位置,在用完123G 之后,可以用ctrl+i 跳转回来
ctrl+o 恢复到历史之后的位置,在用完ctrl+i之后,可以用ctrl+o又跳转回来
查找
:/findstr 从光标处向后查找findstr
:?findstr 从光标处向前查找findstr
n next,进行查找操作后,查找下一个
N 进行查找操作后,查找上一个
替换
:s/old/new substitude的简写,进行一次替换
:s/old/new/g 进行一行的替换
:%s/old/new/g 进行全文的替换
:%s/old/new/gc 进行全文的替换并先确认
R replace简写,进入替换模式,进行单个字母替换; eg: night 经过 Rhello 将变成hello
r 进行一次单个字母替换 eg: night 经过rh 将变成 right
删除
x 删除一个字符
dw delete 简写,删除一个单词,删除到下一个单词的开关 eg: hello |good nice 经过dw 变成 hello |nice ,|在这里表示光标位置
d3w 删除三个单词,可与各种数字,光标定位符(w,e,b,0,$),组合产生奇妙的化学反应
dd 删除一行
d5d 删除五行
de 删除一个单词,删除到这个单词的末尾 eg: hello |good nice 经过de 变成 hello | nice ,|在这里表示光标位置
d3e 删除三个单词
d$ 删除到行尾
d0 删除到行首
cw 删除一个单词,并进入插入模式,c与d一样,可与各种数字,光标定位符产生奇妙的化学反应
cc 删除一行并进入插入模式
恢复
u undo的简写,恢复一个命令
U 恢复一行,vimtutor 原文是fix a whole line,实测是不断切换一行在编辑前后的状态
ctrl+R 撤销恢复操作
复制粘贴
v visual 进入选择模式(一般叫做视图模式,因为vim下方会显示 Visual),再按h,j,k,l进行选择区域改变,然后按y就可以复制选定区域
p paste, 复制到光标的后面
P 复制到光标的前面
yy yank 复制当前行,可与各种光标定位符和数字产生奇妙的化学反应
y3y 复制当前3行,可以发现,vim对数字的支持很到位,可进行推理,会恢复,用错了也没事
"*p 复制系统缓冲区的内容
"+p 复制在其它程序中的复制内容,即系统粘贴板的内容
设置
:set hls 设置查找时的高亮显示
:set nohls 设置查找时的无高亮显示
:!xxx 调用系统命令xxx
保存退出
:w 保存
:wq 保存并退出
:q 退出
:q! 不保存,强行退出
## vim 进阶
在正常模式下输入
:help
0 0
- Vim简介
- vim 简介
- vim简介
- VIM简介
- vim简介
- vim 简介
- VIM简介
- [Hacking VIM]之VIM简介
- VIM 使用简介(转载
- vim 用法简介
- Vi/Vim使用简介
- VIM 使用简介
- VIM 使用简介
- VIM 使用简介
- Vim使用简介
- VIM 使用简介
- vim 使用简介
- VIM 使用方法简介
- iOS后台定位实现
- 什么是线程安全性?
- ubuntu 源
- setTimeOut和setInterval
- 【学习笔记】Spring-3.2.4 + Quartz-2.2.0集成实例
- vim 简介
- C# C1TrueDBGrid控件如何加载图片列
- (十)(3) Z-Stack协议中事件和消息分析
- Android开源项目分类汇总
- Lua闭包
- c#代码创建DropDownList数据绑定
- 浅谈java数据类型间的转换
- 教您如何品尝咖啡
- 使用Nib自定义Cell的复用