作为程序员之 Vim(一)
开始使用 Vim(一)
vim被称为是编辑器之神,如果可以学好vim的话,就可以在键盘上 “健指如飞” 了,可以完全摆脱鼠标来进行文本的定位编辑。
当然,vim还可以进行各种配置,装上各种插件,做成 IDE ,会有很炫酷的感觉,而且做为 伟大 的软件工程师,能在键盘上 刷刷刷地,灵活地超控自己的代码也是一种非常值得 自豪的事,所以,我觉得,掌握 vim 是做为一个计算机方向专业的人的基础课程,很有必要去接触一下 vim 这个“编辑器之神”。
据说vim的学习曲线变化很大,而且对于我这个之前完全没有接触过的人来说,完全不知道应该是怎么入手,网上去查找资料,得到的全是一大堆 完全看不懂 的命令和各种看起来好屌的 vim的配置和 用vim作为 IDE 的教程,看起来很厉害,可是却不是我想要的,我想要的是,我该怎么去入门这个东西,不需要听那么多复杂的完整的,像是字典一样的命令集合,而是一个能让我开始去使用 vim 的教程,能告诉我,刚开始该怎么去玩它。
开启
下载 gvim 安装,然后windows系统的cmd命令打开gvim,也可以直接打开gvim.exe
建立一个文档:vim test.txt.
好了,算是开启 VIM 了。


简单介绍
简单了解一下几种模式
1. 普通模式
Vim编辑方式的主要用途是在被编辑的文件中移动光标的位置。
一旦光标移到到所要的位置,就可以进行剪切和粘贴正文块,删除正文和插入新的正文。当完成所有的编辑工作后,需要保存编辑器结果,退出编辑程序回到终端
2. 插入模式
按下 i 就可以进入插入模式,按下 esc 回到编辑模式。
插入模式其实就是想我们正常使用文本编辑器那样,进行文字,代码的书写,但是光标的移动需要鼠标的辅助。
3. 命令行模式
使用 :进入命令行模式。
4. 可视模式
按下 v 进入可视模式,可以移动光标对文本进行选择。
掌握几个常用的操作
打开:
:e path_to_file/filename
存盘:
:w 保存
:q 退出
:wq 保存并退出 wq 后面可以加文件名
:q! 强制退出
删除/复制/粘贴:
x 删除当前光标所在的字符
dd 删除当前光标所在的行
yy 复制当前行
nyy 复制n行
p 小写字母 p,将缓冲区的内容粘贴到光标的后面
P 大写字母 P,将缓冲区的内容粘贴到光标的前面
u 撤销
学会在文本中移动光标
1 上下左右
h(左) j(下) k(上) l(右)
2 行内移动
w 右移光标到下一个字的开头;
e 右移光标到一个字的末尾;
b 左移光标到前一个字的开头;
0 数字0,左移光标到本行的开始;
$ 右移光标,到本行的末尾;
^ 移动光标,到本行的第一个非空字符。
3 更大范围的移动:
* 当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
# 当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;
(/) 移动到 前/后 句 的开始;
{/} 跳转到 当前/下一个 段落 的开始。
g_ 到本行最后一个不是 blank 字符的位置。
fa 到下一个为 a 的字符处,你也可以fs到下一个为s的字符。
t, 到逗号前的第一个字符。逗号可以变成其它字符。
3fa 在当前行查找第三个出现的 a。
F/T 和 f 和 t 一样,只不过是相反方向;
gg 将光标定位到文件第一行起始位置;
G 将光标定位到文件最后一行起始位置;
NG或Ngg 将光标定位到第 N 行的起始位置。
4 找到需要的 某一页
: n 将光标移到第 n 行
ctrl+f 在文件中前移一页(相当于 page down);
ctrl+b 在文件中后移一页(相当于 page up);
H 将光标移到屏幕上的起始行(或最上行);
M 将光标移到屏幕中间;
L 将光标移到屏幕最后一行。
3L 表示将光标移到屏幕的倒数第3行
好了,到这里可以自个儿玩一阵子了,自己多试试上面的那些指令啊,体验一下脱离鼠标,让指尖游走在键盘上操控光标的成就感吧。
搜索查找文本内容
Vim中执行搜索匹配最强大的地方是结合 正则表达式 来搜索
当然,文本编辑,怎么可能少了搜索呢。
搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ? 取代 / ,可以实现反向搜索(朝文件开头方向)。例如:
/str1 正向搜索字符串 str1;
n 继续搜索,找出 str1 字符串下次出现的位置;
N 继续搜索,找出 str1 字符串上一次出现的位置;
?str2 反向搜索字符串 str2 。
替换
Vim常规的删除命令是 d、 x (前者删除 行 ,后者删除 字符 ),结合Vim的其他特性可以实现基础的删除功能。将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符或一行、多行。例如:
d$ 从当前光标起删除字符直到行的结束;
d0 从当前光标起删除字符直到行的开始;
J 删除本行的回车符(CR),并和下一行合并。
其他命令:
rc 用 c 替换光标所指向的当前字符;
nrc 用 c 替换光标所指向的前 n 个字符;
5rA 用 A 替换光标所指向的前 5 个字符;
x 删除光标所指向的当前字符;
nx 删除光标所指向的前 n 个字符;
3x 删除光标所指向的前 3 个字符;
dw 删除光标右侧的字;
ndw 删除光标右侧的 n 个字;
3dw 删除光标右侧的 3 个字;
db 删除光标左侧的字;
ndb 删除光标左侧的 n 个字;
5db 删除光标左侧的 5 个字;
dd 删除光标所在行,并去除空隙;
ndd 删除(剪切) n 行内容,并去除空隙;
3dd 删除(剪切) 3 行内容,并去除空隙;
作为程序员之 Vim(一)的更多相关文章
- vim与程序员 vi/vim 的使用
vim与程序员 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以 ...
- 程序员的vim
1,所有的Unix like系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在,但是目前我们使用比较多的是vim编辑器 vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序 ...
- 程序员的编辑器——VIM
from:http://blog.chinaunix.net/uid-11278770-id-148579.html Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册 ...
- vim配置-程序员【转】
Ubuntu11.10的vim升级后,版本为vi Improved 7.3.154功能很强大了.不过,程序员要根据自己的习惯配置好vimrc文件,是vim更加得心应手. 注:一般用户在自己的当前目录下 ...
- vim与sublime,程序员的屠龙刀和倚天剑
对程序员来说,写代码是再熟悉不过的事情了,windows系统自带有记事本软件,能写写小规模的代码,可是代码量大了,它的局限性就暴露得很明显了:没有语法高亮,没有自动提示,不支持项目管理,界面难看-- ...
- vim与程序员
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...
- linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: ag), 且有vim插件的
发现一个比ack更快更好用的: https://github.com/ggreer/the_silver_searcher , 使用时命令为ag,它是基于ack的代码二次开发的,所有使用方法基本 ...
- 运维 06 vim与程序员
vim与程序员 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以 ...
- [转]C/C++ 程序员必须收藏的资源大全
from: https://github.com/jobbole/awesome-cpp-cn C++ 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome – XXX 系列 ...
随机推荐
- android 去掉标题
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FUL ...
- Jquery实际应用,判断radio,selelct,checkbox是否选中及选中的值
jquery取radio单选按钮的值 $("input[name='items']:checked").val(); 另:判断radio是否选中并取得选中的值 如下所示: fun ...
- 【转】正确设置php-fpm子进程用户,提高网站安全性防挂马
原文地址:http://www.myhack58.com/Article/60/61/2013/37209.htm 根据生产环境不断反馈,发现不断有 PHP网站被挂木马,绝大部分原因是因为权限设置不合 ...
- 灵感来自 Google & YouTube 的苗条的进度栏效果
NProgress.js 是纳米级的进度条插件.拥有逼真的的涓涓细流动画效果来告诉你的用户,某些事情正在发生.它的灵感来自于谷歌,YouTube,应用了,这款苗条的进度条是完美的,适用于 Turbol ...
- Hybrid框架UI重构之路:五、前端那点事儿(HTML、CSS)
上文回顾 :Hybird框架UI重构之路:四.分而治之 这里讲述在开发的过程中,一些HTML.CSS的关键点. 单页模式的页面结构 在单页模式中,弱化HTML的概念,把HTML当成一个容器,BODY中 ...
- JS常用的设计模式
单例模式 只创建类的唯一一个实例.我们看了好几种可以不通过构造函数和类Java语法达成单例的方法.从另一方面来说,JavaScript中所有的对象都是单例.有时候开发者说的单例是指通过模块化模式创建的 ...
- swift学习笔记之-方法部分
//方法部分 import UIKit //方法(Methods) /*方法是与某些特定类型相关联的函数,类.结构体.枚举都可以定义实例方法 实例方法(Instance Methods): 1.属于某 ...
- jQuery原型方法first,last,eq,slice源码分析
这4个方法中前3个方法很常用大家都见过,但是slice方法可能会以为是数组方法,其实slice也是jQuery的一个原型方法,只不过是底层方法是为其他方法服务的(更具体点是为eq方法服务的),首先还是 ...
- 使用 jQuery Mockjax 插件模拟 Ajax 请求
在实际的开发过程中,前端后台协商好了统一的接口,就各自开始自己的任务了.这时候我有这么一个 Ajax 请求需要从后台获取数据: $.ajax({ url: '/products/' }).done(f ...
- Emacs学习心得之 基础配置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...