今天下定决心要逐渐脱离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(一)的更多相关文章

  1. Vim入门学习之Vim解析

    Vim解析... ----------------------- 首先你要会从官网上下载你想要的Vim版本:   官网: http://www.vim.org/==================== ...

  2. Linux学习之Vim/Vi使用(十三)

    Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...

  3. linux学习之——vim简明教程

    摘自  http://blog.csdn.net/niushuai666/article/details/7275406 ——————————正文开始—————————— 你想以最快的速度学习人类史上 ...

  4. 学习使用vim,熟悉Linux

    随着对vim一步一步的熟悉,对Linux的资料查阅,在加上今天阅读了王垠的文章,更加的觉得学习vim是正确的选择.抛弃Windows思维,进入Linux的世界,才发现是思维上的转变,如学习英语一样,是 ...

  5. 学习使用Vim(二)——User Manuals, Getting Started

    Vim的用户手册主要包含以下三个部分:     Getting Started;     Editing Effectively;     Tuning Vim;     分别代表基本编辑技巧,更优化 ...

  6. Linux学习4——Vim和Bash

    一.写在前面  本将将介绍Linux自带的强大的文本编辑器Vim和Bash的相关知识. 二.完成目标 1.了解Vim和Bash的基本概念 2.定制自己的vim 3.Bash中的一些命令 4.管道命令 ...

  7. 【Python Learning第一篇】Linux命令学习及Vim命令的使用

    学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*) 此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多多包涵 以下是我上课做的一些笔记,非常的 ...

  8. linux学习3(vim)

    一.文档编辑 1. vi和vim命令 Vim的打开文件的方式(4种,要求掌握的就前三种): 1. vim 文件路径                                            ...

  9. 鸟哥的linux私房菜——第九章学习(vim编辑器)

    第九章vim编辑器 1.0).vi与vim Linux下文本界面的文书编辑器通常会有常常听到的就有: emacs, pico, nano, joe, 与 vim 等等. vi的优势: 所有的 Unix ...

随机推荐

  1. Winform 无边框随意拖动【转载】

    本篇技术内容转载自:http://www.cnblogs.com/ap0606122/archive/2012/10/23/2734964.html using System; using Syste ...

  2. silverlight visifire控件图表制作——silverlight 后台方法ControlChart.xaml.cs

    一.构造方法ControlChart 1.前台页面控件赋值 //时间下拉框赋值,下拉框赋选定值                for (int ii = DateTime.Today.Year; ii ...

  3. iOS_SN_深浅拷贝( 百度的)_转载

    文章原地址:http://www.cnblogs.com/5ishare/p/4362459.html 深浅拷贝前提是:是实现NSCopying或者NSMutableCopying协议. 浅拷贝只是复 ...

  4. arry()数组的理解及api的使用(一)

    我们想要了解数组,首先就要先要了解到什么是数据结构,所谓的数据结构就是把数据与数据见的关系按照特定的结构来保存.设计合理的数据结构是解决问题的前提.了解了数据结构后我们下面来数组的定义:数组(arra ...

  5. log4net 使用步骤

    1.安装log4net 官网首页:http://logging.apache.org/log4net/ 下载地址:http://logging.apache.org/log4net/download_ ...

  6. (原)10-folder交叉验证

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6069731.html 参考网址: https://github.com/cmusatyalab/ope ...

  7. winform textbox 的自动实现功能

    好久没写博客了,主要是太懒了,之前因为做bs的比较多现在想转cs端了,虽然现在做cs也一年了,可接触的东西太过零碎了,以至于感觉这一年好像什么都没有学到.估计是因为学了之后没有记录,不扎实,然后又忘记 ...

  8. 迁移笔记:对ob_start()的总结

    1.Flush:刷新缓冲区的内容,输出. 函数格式:flush() 说明:这个函数经常使用,效率很高. 2.ob_start :打开输出缓冲区 函数格式:void ob_start(void) 说明: ...

  9. windows下编译firefox

    可以自己定制下.估计很简单..... 官方文档扫一遍: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_I ...

  10. SSH自动部署

    我的是windows环境,目前开发的过程中,有些项目需要一下子部署到很多的linux服务器上.写了个脚本能够自动上传文件和执行部署任务.完成这个任务需要的条件包括SSH配置和一个执行脚本. 准备 1. ...