免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1247 | 回复: 0
打印 上一主题 下一主题

vi编辑技巧 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-10 14:21 |只看该作者 |倒序浏览
vi编辑技巧[color="#000099"]游标的移动
[color="#000099"]  本节所述皆是在 common-mode(c-mode,在 vim 又名 normal-mode)下的移动,原始的 vi 只能在 c-mode 移动,在 insert-mode 只做文字的输入,而不做游标的移动。当然 vim 及 elvis 的方向键是不论在那一种 mode 皆可移动自如。
[color="#000099"]基本的游标移动
[color="#000099"]  h 左,或 Backspace 或方向键
[color="#000099"]  j 下,或 Enter 或 +(要 Shift 键),或方向键
[color="#000099"]k [color="#000099"]上,或 方向键或 -(不必 Shift 键)
[color="#000099"]  l 右,或 Space 或方向键
[color="#000099"]  Ctrl-f 即 PageDown 翻页。
[color="#000099"]  Crtl-b 即 PageUp 翻页。
[color="#000099"]使用 hjkl 键的移动是为了使手不必离开打字区(键盘中央的部位),
[color="#000099"]  以加快打字的速度,如果各位不习惯,那就使用方向键吧!
[color="#000099"]Backspace [color="#000099"]及 Space 的移动方式是到了行首或行尾时会折行,
[color="#000099"]  但方向键或 hl 键的移动则在行首或行尾时您继续按也不会折行。
[color="#000099"]  转折换行的功能是 vim 的扩充功能,elvis 无此功能。
[color="#000099"]jk [color="#000099"]及使用方向键的上下移动游标会尽量保持在同一栏位。
[color="#000099"]  使用 Enter,+,- 的上下移动,游标会移至上(下)一行的
[color="#000099"]  第一个非空白字元处。
[color="#000099"]好像有点复杂,各位就暂时使用方向键来移动就简单明白了!
[color="#000099"]  等您爱上了 vim 后再来讲究吧。  [color="#000099"]
进阶的游标移动
[color="#000099"]  0 是数目字 0 而不是英文字母 o。或是 Hmoe 键,移至行首,(含空白字元)。
[color="#000099"]  ^ 移至第一个非空白字元,注意,要 Shift 键。
[color="#000099"]  $ 移至行尾,或 End 键。要 Shift 键。
[color="#000099"]以上两个按键是源自规则表示式(regular expression),
[color="#000099"]  在 regexp 中 ^ 是匹配行首,$ 是匹配行尾。   [color="#000099"]
G 移至档尾(最后一行的第一个非空白字元处)
[color="#000099"]  gg □至档首(第一行之第一个非空白字元处)
[color="#000099"]gg [color="#000099"]是 vim 的扩充功能,在 elvis 或原始 vi 中可用 1G 来
[color="#000099"]  移至档首(是数字 1 不是英文字 l)。
[color="#000099"]G [color="#000099"]之原意是 goto,指移至指定数目之行首,如不指定数目,
[color="#000099"]  则预设是最后一行。  [color="#000099"]
w 移至次一个字(word)字首。当然是指英文单字。
[color="#000099"]  W 同上,但会忽略一些标点符号。
[color="#000099"]  e 移至前一个字字尾。
[color="#000099"]  E 同上,但会忽略一些标点符号。
[color="#000099"]  b 移至前一个字字首。
[color="#000099"]  B 同上,但会忽略一些标点符号。
[color="#000099"]  H 移至萤幕顶第一个非空白字元。
[color="#000099"]  M 移至萤幕中间第一个非空白字元。
[color="#000099"]  L 移至萤幕底第一个非空白字元。
[color="#000099"]这和 PageDown,PageUp 不一样,内文内容并未动,
[color="#000099"]  只是游标在动而已。   [color="#000099"]
n| 移至第 n 个字元(栏)处。注意,要用 Shift 键。n 是从头起算的。
[color="#000099"]  :n 移至第 n 行行首。或 nG。
[color="#000099"]  特殊的移动
[color="#000099"]  ) 移至下一个句子(sentence)首。
[color="#000099"]  ( 移至上一个句子(sentence)首。
[color="#000099"]  } 移至下一个段落(paragraph)首。
[color="#000099"]  { 移至上一个段落(paragraph)首。
[color="#000099"]sentence [color="#000099"]是以 . ! ? 为区格。paragraph 是以空白行为区格。   [color="#000099"]
% 这是匹配 {},[],() 用的,例如您的游标现在在 { 上只要按 %,就会跑到相匹配的 } 上。写程式时满好用的。
[color="#000099"]  另还有一些 vim 的特殊按键,但这得留待最后才来讲述,否则各位恐怕会头昏眼花了。
[color="#000099"]  基本编辑指令
[color="#000099"]  这个单元就开始进入主题了。下编辑指令都是在 commond-mode (c-mode),就是您一进入 vim 时的模式,只能下指令,不能键入文字。如果印象模糊,请瞄一下第一个单元的内容。这个单元说的是基本的指令,有些比较特殊的编辑指令,因为太有个性了,所以会独立成一个单元来说明。
[color="#000099"]进入 i-mode 的指令
[color="#000099"]  i 在游标所在字元前开始输入文字(insert)。
[color="#000099"]  a 在游标所在字元后开始输入文字(append)。
[color="#000099"]  o 在游标所在行下开一新行来输入文字(open)。
[color="#000099"]  I 在行首开始输入文字。
[color="#000099"]   此之行首指第一个非空白字元处,要从真正的第一个字元处开始输人文字,
[color="#000099"]  可使用 0i 或 gI(vim)。[color="#000099"]
  [color="#000099"]
A 在行尾开始输入文字。
[color="#000099"]   这个好用,您不必管游标在此行的什么地方,
[color="#000099"]  只要按 A 就会在行尾等著您输入文字。[color="#000099"]
  [color="#000099"]
O 在游标所在行上开一新行来输入文字。
[color="#000099"]  J 将下一行整行接至本行(Joint)。
[color="#000099"]   并无相对的 split 功能,可在 i-mode 下按 Enter 来达成[color="#000099"]
  [color="#000099"]
,当然如果您熟 macro 的话,可自行定义。
[color="#000099"]   使用 J 时,预设会消去本行的 EOL,且上下行接缝间会留下一个空白字元,
[color="#000099"]  这符合英文习惯,却对中文会造成困扰,欲不留空白字元,
[color="#000099"]  可使用 gJ(大写 J)指令,但这是 vim 的扩充功能,elvis 不适用。
[color="#000099"]请您随便找一个档案来试看看,光看文字说明太抽象了。[color="#000099"]
  [color="#000099"]
删除指令
[color="#000099"]  x 删除游标所在处之字元。在 vim 及 elvis 亦可用 Del 键。
[color="#000099"]  X 删除游标前之字元。不可使用 Spaceback 键。
[color="#000099"]   vim 可以正确使用以上两个指令于中文,会删去一个中文字 elvis 则不行,
[color="#000099"]  一个中文字要删两次,即使用 xx。
[color="#000099"]dd [color="#000099"]删除一整行(delete line)。
[color="#000099"]  dw 删除一个字(delete word)。不能适用于中文。
[color="#000099"]  dG 删至档尾。
  d1G 删至档首。或 dgg(<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'MS Shell Dlg'; mso

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2016/showart_5050.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP