`
iamxi
  • 浏览: 191561 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

大家來學VIM(一個歷久彌新的編輯器)[五]

 
阅读更多

尋找、替換

 

搜尋、替換的功能幾乎是每個編輯器必備的功能,那在 vi(m) 中有沒有特殊的地方呢?當然有,您忘了,vi(m) 是個性十足的編輯器。最特殊的地方是和規則表示式(regular expression,簡稱 regexp)結合在一起。簡單的說她是一種 pattern 的表示法,在執行動作,如尋找或替換,就會依據這個 pattern 去找,所有符合 pattern 的地方就會執行您所下的動作。在這個單元裡暫不討論 regexp,會另立一個單元來探討,以免搞得頭昏腦脹。目前就暫不使用 regexp,您要找什麼就直接鍵入什麼就對了。



尋找

/  在 c-mode 的情形下,按 / 就會在左下角出現一個 /,然後鍵
   入您要尋找的字串,按個 Enter 就會開始找。
?  和 / 相同,只是 / 是向前(下)找,? 則是向後(上)找。
n  繼續尋找。
N  繼續尋找(反向)。



更方便的尋找操作(vim 才有)


*  尋找游標所在處之 word(要完全符合)。
#  同上,但 * 是向前(下)找,# 則是向後(上)找。
g* 同 * ,但部份符合即可。
g# 同 # ,但部份符合即可。

  • n, N 之繼續尋找鍵仍適用。


 

替換(substitute)

:[range]s/pattern/string/[c,e,g,i]

range  指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行
       至最後一行,也就是整篇文章,也可以 % 代表。

  • 還記得嗎? % 是目前編輯的文章,# 是前一次編輯的文章。
pattern  就是要被替換掉的字串,可以用 regexp 來表示。
string   將 pattern 由 string 所取代。
c  confirm,每次替換前會詢問。
e  不顯示 error。
g  globe,不詢問,整行替換。
i  ignore 不分大小寫。

  • g 大概都是要加的,否則只會替換每一行的第一個符合字串。可以合起來用,如 cgi,表示不分大小寫,整行替換,替換前要詢問是否替換。
[實例] :%s/Edwin/Edward/g
    這樣整篇文章的 Edwin 就會替換成 Edward。

更進階的尋找、替換的例子在說明 regexp 的時候還會再詳述。目前只知道最基本的用法就可以了!其實光這樣就非常好用了。:-)


 

書籤功能

這又是 vi(m) 的一個秘密武器,簡單的說,您可以在文章中的某處做個記號(marks),然後跑到其它地方去編輯,在呼叫這個 mark 時又會回到原處。妙吧!

mx  x 代表 26 個小寫英文字母,這樣游標所在處就會被 mark。
`x  回到書籤原設定位置。

  • ` 是 backward quote,就是 Tab 鍵上面那一個。
'x  回到書籤設定行行首。

  • ' 是 forward quote,是 Enter 鍵隔壁那一個。


 

VIM對於書籤的擴充功能

小寫字母  只作用於單一檔案內。
大寫字母  可作用於編輯中之各檔案間。
數目字    可作用於前次編輯的十個檔案。

  • 數目字的用法比較特殊,'0 是回到前一次編輯檔案中離開前的最後位置,'1 則是回到前二次編輯檔案的最後位置,依此類推。您不必使用 m 來標示,vim 會自動記憶。很玄吧!其實這是 viminfo 的功能,您要認真追究的話,請 :h viminfo-file-marks。viminfo 關掉,就沒這個功能了!
  • 所謂前次指的是前次啟動的 vim。
:marks  得知目前所有書籤的列表。

分享到:
评论

相关推荐

    vim帮助文档-大家来学VIM(一个历久弥新的编辑器)

    大家来学VIM(一个历久弥新的编辑器)[一] 前言 监於仍有许多人还没找到顺手的编辑器,而许多想学 vi 的人又觉得无从下手,因此在此提出一些个人的心得,希望能对这些朋友有点帮助。或许也减少一点 FAQ 吧! ...

    大家来学VIM

    - **多文件编辑**:使用`:next`切换到下一个文件,使用`:prev`切换到上一个文件。 - **加密文件**:使用`:X`命令对文件进行加密。 - **紧急恢复**:如果编辑过程中发生意外退出,VIM会自动创建备份文件,使用`:e #`...

    《大家来学vim》-李果正

    Vim,全称Vi Improved,是从早期的Vi编辑器发展而来的一个高度可定制且功能丰富的文本编辑器,广泛应用于Linux、Unix和类Unix系统中,同时也支持Windows平台。 1. Vim的基本操作: - 启动与退出:学习如何启动Vim...

    学习vi和vim编辑器_第7版_中文+英文_PDF

    《学习vi和Vim编辑器(中文版第7版)》将说明使用这两种程序编辑文档的基础技巧,并讨论高级工具,例如交互式宏与扩展编辑器的脚本——我们的内容编写成容易遵循步骤操作的风格,成就本书的经典地位。读者将学到: ·...

    大家来学vim(简体-05).pdf

    大家来学vim(简体-05).pdf 鉴于仍有许多人还没找到顺手的编辑器,而许多想学 vi 的人又觉得无从下手,因此在此提出一 些个人的心得,希望能对这些朋友有点帮助。或许也减少一点 FAQ 吧! 真要深入的话,大多数的前辈...

    大家来学 vim pdf 中文

    "大家来学 Vim pdf 中文" 是一个专为中文用户设计的教程,旨在帮助初学者快速掌握Vim的基本操作和高级技巧。 1. **基础操作** - 启动与退出:了解如何启动Vim编辑器,以及在编辑模式和命令模式之间切换。例如,按...

    学习vi和vim编辑器.pdf_vim实用_vi_vim_

    1. **打开文件**:`vim 文件名` 命令用于打开一个文件进行编辑。 2. **移动光标**:`h`左移,`j`下移,`k`上移,`l`右移;数字与移动键组合可快速移动,如`4j`表示向下移动4行。 3. **删除文本**:`x`删除当前字符,...

    学习VI和VIM编辑器第7版中文

    **VI和VIM编辑器详解** VI(Visual Editor)是一款强大的文本编辑器,最初在1976年由Bill Joy为UNIX系统开发。随着时间的发展,VI的增强版本VIM(Vi Improved)应运而生,由 Bram Moolenaar 开发,并在1991年首次...

    基于C/C++语言的简易vim编辑器 仿vim编辑器

    # 基于C/C++语言的简易vim编辑器 仿vim编辑器 1. 编辑器下有normal和insert两种模式。默认为normal模式,按i键进入insert模式,按esc退出insert模式。 2. normal模式下按 h j k l键向左上下右移动光标。 3. normal...

    学习vim 编辑器 第7版

    "学习vim编辑器 第7版"显然是针对这个版本的Vim进行深入学习的资源,对于想要提升文本编辑效率的人来说,是非常有价值的。 在Vim中,用户可以快速地在命令模式、插入模式和可视模式之间切换,以执行不同的操作。...

    学习vi和Vim编辑器_CN.pdf

    - **利用Fugitive.vim进行Git集成**:Fugitive.vim是一个Vim插件,提供了丰富的Git命令集成,如提交、查看历史、分支管理等。 #### 结语 学习vi和Vim编辑器是一项非常有价值的投资,尤其是在从事软件开发工作时。...

    一个仿vim的文本编辑器

    【标题】:“一个仿vim的文本编辑器” 在IT领域,文本编辑器是开发者们日常工作中不可或缺的工具,它们用于创建、查看和修改各种类型的文本文件。Vim(Vi Improved)是一个高度可定制且功能强大的命令行文本编辑器...

    学习VI和VIM编辑器第7版中文

    将近三十年的时间里,vi一直是Unix与Linux采用的标准编辑器,从1986年开始,《学习vi和Vim编辑器》一直是第一线的vi导引手册。但三十年来,Unix已不再是三十年前的样子,这本书也不能一成不变。第7版的《学习vi和Vim...

    vim编辑器的rpm包

    在本案例中,"vim编辑器的rpm包"指的是一个打包为RPM格式的Vim软件,方便在支持RPM的Linux系统上进行安装。 RPM包的工作原理是将软件及其依赖关系打包成单一文件,以便于分发和管理。当用户运行`rpm`命令来安装这个...

    vim编辑器用户手册

    Vim编辑器的定制是一个很大的话题,用户可以学习如何通过vimrc文件来配置Vim,包括简单映射的设置、插件的安装、帮助文件的增加、选项设置等。此外,用户手册中还包括使用语法高亮的方法,这对于编程工作尤其重要。 ...

    笨方法学 Vim Script

    例如,你可以定义一个函数来自动缩进代码,然后通过快捷键轻松调用。 Vim Script 中的命令是其强大之处。它们允许你控制文本的操作,比如移动光标、删除文本、复制和粘贴等。例如,`:global` 命令可以用于在整个...

Global site tag (gtag.js) - Google Analytics