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

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

 
阅读更多

複製(yank)

 

yank 是什麼意思?有疑問的請查一下字典吧!就好像是中醫治療中的「拔罐」的意思啦(是不是叫「拔罐」?知道的朋友指正一下吧)!反正在 vi(m) 中,她就是複製 copy 的意思。這在 vi(m) 的思考邏輯裡,就是「拔」yank 起來,「放」put 上去。其實複製的指令就是 y 一個而已,為什麼要獨立成一個單元來說明呢?因為 vi(m) 複製、貼上的功能實在太獨特了,再配合第三單元介紹的數目字,及 vi(m) 內部的緩衝區來使用的話,您會發現,原來 vi(m) 肚子裡還暗藏著秘密武器。



指令說明

yy  複製游標所在行整行。或大寫一個 Y。
2yy 或 y2y  複製兩行。ㄟ,請舉一反三好不好!:-)
y^  複製至行首,或 y0。不含游標所在處字元。
y$  複製至行尾。含游標所在處字元。
yw  複製一個 word。
y2w 複製兩個字。
yG  複製至檔尾。
y1G 複製至檔首。
p   小寫 p 代表貼至游標後(下)。
P   大寫 P 代表貼至游標前(上)。

  • 整行的複製,按 p 或 P 時是插入式的貼在下(上)一行。非整行的複製則是貼在游標所在處之後(前)。
"ayy  將本行文字複製到 a 緩衝區

  • a 可為 26 個英文字母中的一個,如果是小寫的話,原先的內容會被清掉,如果是大寫的話是 append 的作用,會把內容附加到原先內容之後。
  • " 是 Enter 鍵隔壁的那一個同上符號(ditto marks)。
"ap  將 a 緩衝區的內容貼上。

  • 緩衝區的術語在 vim 稱為 registers,vim 擴充了相當多的功能,有興趣深入的朋友請 :h registers。您用 d、c、s、x、y 等指令改變或刪除的內容都是放在 registers 中的。例如:您用 dd 刪除的一行,也是可以使用 p 來貼上的。只要是在緩衝區的內容都可以使用 p 來貼上,不是一定要 y 起來的內容才能用 p。因此您認為 p 是 paste 也可以,認為是 put 可能較正確。
5"ayy  複製五行內容至 a 緩衝區。
5"Ayy  再複製五行附在 a 內容之後,現在 a 中有十行內容了!

  • ㄟ!不要我一直用 a 您就認為只有 a 可以用喔。26 個英文字母都可以的,交叉運用下,您會發覺 vi(m) 肚量不小。
  • 問題來了!忘記誰是誰的時候怎麼辦? :reg(冒號命令)就會列出所有 registers 的代號及內容。您現在就試著按看看。咦!怎麼還有數目字、特殊符號的緩衝區,原來您剛剛刪除(複製)的內容就預設放在 " 這個緩衝區,然後依序是 0,1,2,...9。也就是說您按 p 不加什麼的話,是取出 " 緩衝區的內容的。% 指的是目前編輯的檔案,# 指的是前一次編輯的檔案。還有其它的呀!因為沒什麼重要,就請 :h registers 吧!registers 有個 "s" 結尾,不要搞錯了,而且 Tab 的補全鍵 vim 也支援的,也就是說您鍵入 :h regi 再按 Tab 鍵,vim 就會幫您補全,按了 Tab 後發現不是您要的,那就繼續按,總會出現您要的。:-)
  • Tab 補全的功能,elvis 也有,但叫出 registers 列表的命令則沒有,您得自行記憶在您的腦袋瓜子裡。而且 elvis 的補全能力並沒 vim 強。



天大的指令

  .  這是什麼?ㄚ,是英文句點啦!沒錯,就是英文句點。什麼意
     思?重複前次的編輯動作。這個指令太高明了,只要是編輯動
     作(移動游標不算,冒號命令也不算)都可以按英文句點來重
     複,要重複幾次都可以。

例如:您按了 yy,然後按 p 就會複製、貼上一整行,如果要重複這個動作的話,就可以按 . ,也可以把游標移到其它地方後再按。其它 dd,dw,r,cw 等編輯指令都可以這樣來重複。如果您要重複做某些編輯動作時,千萬千萬一定要想到有這麼一個英文句點重複指令。ㄚ,拜託啦!您一定要常用這個指令。



疑難雜症

1. 那 mouse 中鍵的剪貼功能還有嗎?
當然還有,不管在 console 或 X terminal 中都照用不誤。當然在 windows 下的話就不能用了,可以用 Shift-Insert 來代替。Ctrl-v 在 vim 中另有作用,在 windows 下就不必去麻煩它了。


2. ㄟ,我從 netscape 用 mouse copy 東東過來的時候,常常都搞得天下大亂耶!
要設成 :set paste,預設是 map 至 F9 鍵的,您要 copy 之前先按一下 F9,copy 完後再按一次 F9 來回復。這是 vim 的擴充功能,elvis 沒有。那在 elvis 怎麼辦?只好 :set noai 了。在 GUI 的版本應不會有這種情形。
  • set 的功能先不必去理它,往後會有一個單元專門討論。


朋友!您睡著了嗎?不要被嚇到了,您只要開個檔案,親自操作一下就能心領神會。那用 mouse 不是更方便嗎?不見得,yyp 來複製貼上一整行比較快,還是用 mouse 來拉比較快?您可以試看看。

分享到:
评论

相关推荐

    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