学习使用Vim(一)
今天下定决心要逐渐脱离IDE的“comfortable zone”,学习使用Vim。以前偶尔使用Vim的经历都是很痛苦的,觉得各种不方便和命令复杂难懂。但既然那么多书都推荐使用Vim来浏览纯文本,我想一定是有道理的。我想记录下自己从对Vim一窍不通开始学习的历程,也是对自己的一种鞭策吧。
在baidu上搜索“Vim 入门”,各种资料很多,但很多让人忘而生畏。Vim的各种命令,如果硬记或者知其然不知其所以然,实在是事倍功半。我想找一个像游戏入门那样有趣,基础然后又覆盖面足够的教程。最后发现远在天边近在眼前:
vimtutor。
2015-01-29
vimtutor教程中有两句话,我觉得特别有用:
“特别提示:在您浏览本教程时,不要强行记忆。记住一点:在使用中学习。”
”特别提示:切记您要在使用中学习,而不是在记忆中学习。“
我觉得这正是以前尝试学习Vim总是半途而废的原因:一看各种命令和文档就头大,没怎么实际使用就觉得自己肯定学不好,或者断定这种古老复杂的工具没有学习意义。但本质上Vim只是一种工具,就像木匠的工具一样,把说明书背得再熟练也是没有用的,必须实际使用。
所以我的计划是,在初期,一方面是反复练习vimtutor中的基础知识,另一方面是尽量使用Vim来完成日常工作,首要的就是看android的log文件和写博客。
2015-02-02 Vimtutor 学习笔记
一 知识结构
一共八讲:
第一讲:
移动光标 h、j、k、l;
VIM的进入和退出 :q! :wq
删除单个字符 x
插入 i
第二讲:
删除类命令 dw删除单词,会删除单词后的空格
其他删除类命令 d$删除至行尾
命令和对象 [number] d object 或者 d [number] object w、e、$
对象命令的特殊情况 dd ndd
撤销类命令 u U CTRL-R
第三讲:
插入类命令 p将最后一次删除的内容插入光标之后
替换类命令 r和一个字符替换光标位置字符
更改类命令 cw更改一个单词
使用c的其他更改命令 [number] c object 或者 c [number] object
第四讲:
定位及文件状态 CTRL-g、 SHIFT-G、 行号 SHIFT-G
搜索类命令 /、 ?、 n、 SHIFT-N
配对括号的查找 %
修正错误的方法之一 :s/old/new、:s/old/new/g、:#,#s/old/new/g
更多修正错误的方法 :%s/old/new/g、:%s/old/new/gc
第五讲:
在VIM内执行外部命令 :!
保存文件 :w FILENAME
保存部分内容 :#,# w FILENAME
提取和合并文件 :r FILENAME
第六讲:
打开类命令 o SHILF-O
光标后插入类命令 a SHIFT-A
另一个替换类命令 SHIFT-R
设置类命令的选项 :set ic :set hls is
第七讲:
在线帮助命令 :help w
:help c_<T
:help insert-index
:help user-manual
第八讲:
创建一个启动脚本 :edit ~/.vimrc
:read $VIMRUNTIME/vimrc_exmaple.vim
:write
书籍推荐:VIM-Vi Improved
二 基本命令的解释
:q :quit Quit the current window. Quit Vim if this is the last window.
:w :write Write the whole buffer to the current file. This is the normal way to save changes to a file.
x Delete characters under and after the cursor(into register x).
i Insert text before the cursor (count) times.
d Delete text that motion moves over into register x.
w words forward. exlusive motion.
$ or <END> To the end of the line.
e Forward to the end of the word incluseve.
u Undo changes.
U Undo all latest changes on one line.
CTRL-R Redo changes which were undone.
p Put the text after the cursor.
r Replace the character under the cursor.
c Delete text and start insert.
CTRL-g Prints the current file name, the cursor position, and the file status.
SHIFT-G Goto line, default last line.
/ Search forward for the occurrence of pattern exclusive.
? Search backward for the previous occurrence of pattern exclusive.
n Repeat the latest "/" or "?".
N Repeat the latest "/" or "?" in opposite direction.
% Find the next item in this line after or under the cursor and jump to its match.
:s For each line in range, replace a match of pattern with string.
:!cmd Execute cmd with the shell.
:r :read Insert the file(defult:current file)below the cursor.
o Begin a new line below the cursor and insert text.
O Begin a new line above the cursor and insert text.
a Append text after the cursor.
A Append text at the end of the line.
R Enter Replace mode:Each character you type replaces an existing character, starting with the character under the cursor.
:set Show all options that differ from their default value.
ic/ignorecase Ignore case in search patterns.
hls/hlsearch When there is a previous search pattern, highlight all its matches.
三 练习vimtutor的感想
练习几遍vimtutor之后,对使用vim的畏惧感已经没有了。在实际使用中,已经初步感受到了vim的便利性。在阅读几万到十几万行的android日志文件的过程中,使用vim确实比用gedit要便捷得多,也更利于工作过程中精神的专注。
在<<禅与摩托车维修艺术>>这本书中,作者说, 大部分复杂工具的说明书都不是写给人看的,技术的开发者对于技术本身即不专注,也无热情。而vim的手册,给我的感觉是一个很好的反例,不光人性化,而且是在将复杂的东西简约化,让我这样的初学者也能很好的使用,极大增强了我对于学好vim的信心。
所以下一步,我决定依然依靠vim自身提供的user-manual,希望能了解vim更多的使用技巧和特性。
学习使用Vim(一)的更多相关文章
- Vim入门学习之Vim解析
Vim解析... ----------------------- 首先你要会从官网上下载你想要的Vim版本: 官网: http://www.vim.org/==================== ...
- Linux学习之Vim/Vi使用(十三)
Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...
- linux学习之——vim简明教程
摘自 http://blog.csdn.net/niushuai666/article/details/7275406 ——————————正文开始—————————— 你想以最快的速度学习人类史上 ...
- 学习使用vim,熟悉Linux
随着对vim一步一步的熟悉,对Linux的资料查阅,在加上今天阅读了王垠的文章,更加的觉得学习vim是正确的选择.抛弃Windows思维,进入Linux的世界,才发现是思维上的转变,如学习英语一样,是 ...
- 学习使用Vim(二)——User Manuals, Getting Started
Vim的用户手册主要包含以下三个部分: Getting Started; Editing Effectively; Tuning Vim; 分别代表基本编辑技巧,更优化 ...
- Linux学习4——Vim和Bash
一.写在前面 本将将介绍Linux自带的强大的文本编辑器Vim和Bash的相关知识. 二.完成目标 1.了解Vim和Bash的基本概念 2.定制自己的vim 3.Bash中的一些命令 4.管道命令 ...
- 【Python Learning第一篇】Linux命令学习及Vim命令的使用
学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*) 此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多多包涵 以下是我上课做的一些笔记,非常的 ...
- linux学习3(vim)
一.文档编辑 1. vi和vim命令 Vim的打开文件的方式(4种,要求掌握的就前三种): 1. vim 文件路径 ...
- 鸟哥的linux私房菜——第九章学习(vim编辑器)
第九章vim编辑器 1.0).vi与vim Linux下文本界面的文书编辑器通常会有常常听到的就有: emacs, pico, nano, joe, 与 vim 等等. vi的优势: 所有的 Unix ...
随机推荐
- 表格table常见的边框设置和初步的立体效果
做网页时经常会遇到表格,常见的表格如下: <style type="text/css"> .tbtest0 { width:500px; height:200px; b ...
- MySQL在Linux系统下配置文件详解
在日常的的开发过程中接触到了SQLServer和MySQL数据库的操作性问题,可能是以前接触的都是SQL Server,才开始接触MySQL,总感觉使用MySQL没有使用SQLserver那么顺手,一 ...
- HDU 5900 - QSC and Master [ DP ]
题意: 给n件物品,有key和value 每次可以把相邻的 GCD(key[i], key[i+1]) != 1 的两件物品,问移除的物品的总value最多是多少 key : 1 3 4 2 移除3 ...
- c#鼠标在控件上面,然后显示文字
先添加toolTip控件到界面 然后每个控件的属性会多一项 ToolTip 第一种:直接给里面加文字 第二种: private void pictureBox_topmost_MouseHover(o ...
- 快速搭建Android 开发环境-使用ADT Bundle
一.搭建Android开发环境 近日要学Android开发基础,就着手搭建Windows下的Android开发环境. 找了一些相关的博文参考,基本上都是要分别下载和安装JDK, Eclipse, An ...
- 根据文字计算Label的尺寸
CGSize size = [self.username.text boundingRectWithSize:(CGSize){130,20} options:NSStringDrawingUsesL ...
- Hql 子查询
直接上代码: public virtual IList<VoucherLog> GetMaxResultVoucherLog() { string orgaizationCode = Ht ...
- 这样就算会了PHP么?-10
关于基本的文件读写内容: <?php echo "readfile function:<br>"; readfile("tm.txt"); e ...
- Codeforces 518D Ilya and Escalator
http://codeforces.com/problemset/problem/518/D 题意:n个人,每秒有p的概率进电梯,求t秒后电梯里人数的期望 考虑dp:f[i][j]代表第i秒有j个人的 ...
- format %x invalid or incompatible with argument问题解决方法
现在还有好多朋友在用Protel 99se来画图,可是在现在的双核或四核电脑上运行Protel出现错误并且弹出对话框:“format '%x' invalid or incompatible with ...