LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: 哇哈哈

vi中的剪切与粘贴

[复制链接]
发表于 2003-1-3 22:56:34 | 显示全部楼层
$ex  //和vi vim功能一样
发表于 2003-1-3 22:57:42 | 显示全部楼层
发重复啦
北南兄麻烦删除掉吧
发表于 2003-1-23 11:34:35 | 显示全部楼层
这是我总结的一些基本用法,可能对初用者会有帮助,独乐乐不如众乐乐,是吧!

说明:以下黑色为vi和vim均有的一般功能,而红色为Vim(Vi Improved)所特有功能。Vim一般的Unix和Linux下均有安装。
        三种状态
Command:        任何输入都会作为编辑命令,而不会出现在屏幕上,任何输入都引起立即反映
Insert:                任何输入的数据都置于编辑寄存器,按ESC,可跳回command方式
Escape:                以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。
        离开vi
:q!                         离开vi,并放弃刚在缓冲区内编辑的内容。
:wq                 将缓冲区内的资料写入磁盘中,并离开vi。
:x                         同wq。
(注意—— :X 是文件加密,一定要与:x存盘退出相区别)
        进入输入模式
a (append)         由游标之后加入资料。
A                         由该行之末加入资料。
i (insert)                 由游标之前加入资料。
I                         由该行之首加入资料。
o (open)                 新增一行於该行之下供输入资料之用。
O                         新增一行於该行之上供输入资料之用。
        删除与修改
x                         删除游标所在该字元。
X                         删除游标所在之前一字元。
r                         用接於此指令之后的字元取代(replace)游标所在字元。如:ra将游标所在字元以 a 取代之。
R                         进入取代状态,直到《ESC》为止。
s                         删除游标所在之字元,并进入输入模式直到《ESC》。
S                         删除游标所在之该行资料,并进入输入模式直到《ESC》。
        光标的移动
m<a-z>                设置书签<a-z>
‘<a-z>                移至书签<a-z>处
0                         移至该行之首
$                         移至该行之末。
e                        移动到下个字的最後一个字母
w                         移动到下个字的第一个字母。
b                         移动到上个字的第一个字母。
^                         移至该行的第一个字元处。
H                         移至视窗的第一行。
M                         移至视窗的中间那行。
L                         移至视窗的最后一行。
G                         移至该文件的最后一行。
+                         移至下一列的第一个字元处。
-        移至上一列的第一个字元处。
:n                         移至该文件的第 n 列。
n+                         移至游标所在位置之后的第 n 列。
n-                         移至游标所在位置之前的第 n 列。
<Ctrl><g>         显示该行之行号、文件名称、文件中最末行之行号、游标所在行号占总行号之百分比。

(Vim) 光标移动基本用法小解:
(这只要组合上边的功能就可以明白了,不用再一一讲解了吧!)
                  ge     b                 w                                                    e
                  ←    ←           ---→                                           --→
        This is-a  line,  with special/separated/words (and some more).
                ←-  ←--           -----------------→                   ---→
                GE   B                                           W                                         E

&#61550;        视窗的移动
<Ctrl><f>         视窗往下卷一页。
<Ctrl><b>         视窗往上卷一页。
<Ctrl><d>         视窗往下卷半页。
<Ctrl><u>         视窗往上卷半页。
<Ctrl><e>         视窗往下卷一行。
<Ctrl><y>         视窗往上卷一行。
&#61550;        剪切、复制、删除
Operator + Scope = command
&#61618;        Operator
d                         剪切
y                         复制。
p                         粘帖,与 d 和 y 配和使用。可将最后d或y的资料放置於游标所在位置之行列下。
c                         修改,类似delete与insert的组和。删除一个字组、句子等之资料,并插入新建资料。
&#61618;        Scope
e                         由游标所在位置至该字串的最后一个字元。
w                         由游标所在位置至下一个字串的第一个字元。
b                         由游标所在位置至前一个字串的第一个字元。
$                         由游标所在位置至该行的最后一个字元。
0                         由游标所在位置至该行的第一个字元。
&#61618;        整行动作
dd                         删除整行。
D                         以行为单位,删除游标后之所有字元。
cc                         修改整行的内容。
yy                        使游标所在该行复制到记忆体缓冲区。
&#61550;        取消前一动作(Undo)
u                         恢复最后一个指令之前的结果。
U                         恢复游标该行之所有改变。
(vim) u                 可以多次撤消指令,一次撤消一个操作,直至本次操作开始为止。
(vim) Ctrl+r        可以恢复撤消前内容,按多次可恢复多次。
&#61550;        查找与替换
/字串                 往游标之后寻找该字串。
?字串                 往游标之前寻找该字串。
n                         往下继续寻找下一个相同的字串。
N                         往上继续寻找下一个相同的字串。
%                        查找“(”,“)”,“{”,“}”的配对符。
s                        搜寻某行列范围。
g                        搜寻整个编辑缓冲区的资料。
:1,$s/old/new/g 将文件中所有的『old』改成『new』。
:10,20s/^/ /         将第10行至第20行资料的最前面插入5个空白。
(vim)
/字符串                 后边输入查询内容可保存至缓冲区中,可用↑↓进行以往内容选择。
另外:将光标移动在选定单词下方按*,则可以选中此单词作为查询字符,可以避免输入一长串字符的麻烦。
&#61550;        (vim) 大小写替换
首先用按v开启选择功能,然后用↑↓←→键来选定所要替换的字符,若是小写变大写,则按U;反之按u;
如果是选择单词,则可以在按v后,按w,最后按U/u,这样就可以将字符随意的改变大小写了,而不用删除后重新敲入。

&#61550;        资料的连接
J                         句子的连接。将游标所在之下一行连接至游标该行的后面。
&#61550;        环境的设定
:set all                可设置的环境变量列表
:set                        环境变量的当前值
:set nu                 设定资料的行号。
:set nonu         取消行号设定。
:set ai                 自动内缩。
:set noai                 取消自动内缩。
(vim)
:set ruler                会在屏幕右下角显示当前光标所处位置,并随光移动而改变,占用屏幕空间较小,使用也比较方便,推荐使用。
:set hlsearch        在使用查找功能时,会高亮显示所有匹配的内容。
:set nohlsearch                关闭此功能。
:set incsearch                使Vim在输入字符串的过程中,光标就可定位显示匹配点。
:set nowrapscan        关闭查找自动回环功能,即查找到文件结尾处,结束查找;默认状态是自动回环

&#61550;        ex指令
&#61618;        读写资料
:10,20w test         将第10行至第20行的资料写入test文件。
:10,20w>>test 将第10行至第20行的资料加在test文件之后。
:r test                 将test文件的资料读入编辑缓冲区的最后。
:e [filename]        编辑新的文件。
:e! [filename]        放弃当前修改的文件,编辑新的文件。
:sh                        进入shell环境,使用exit退出,回到编辑器中。

:!cmd                运行命令cmd后,返回到编辑器中。
&#61618;        删除、复制及搬移
:10,20d                 删除第10行至第20行的资料。
:10d                 删除第10行的资料。
:%d                 删除整个编辑缓冲区。
:10,20co30         将第10行至第20行的资料复制至第30行之后。
:10,20mo30         将第10行至第20行的资料搬移至第30行之后。
发表于 2003-1-23 11:49:04 | 显示全部楼层
不错 相当一本<<vi使用手册>>
发表于 2009-5-13 06:30:41 | 显示全部楼层
  1. 这是我总结的一些基本用法,可能对初用者会有帮助,独乐乐不如众乐乐,是吧!

  2. 说明:以下黑色为vi和vim均有的一般功能,而红色为Vim(Vi Improved)所特有功能。Vim一般的Unix和Linux下均有安装。
  3.         三种状态
  4. Command:        任何输入都会作为编辑命令,而不会出现在屏幕上,任何输入都引起立即反映
  5. Insert:                任何输入的数据都置于编辑寄存器,按ESC,可跳回command方式
  6. Escape:                以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。
  7.         离开vi
  8. :q!                         离开vi,并放弃刚在缓冲区内编辑的内容。
  9. :wq                 将缓冲区内的资料写入磁盘中,并离开vi。
  10. :x                         同wq。
  11. (注意—— :X 是文件加密,一定要与:x存盘退出相区别)
  12.         进入输入模式
  13. a (append)         由游标之后加入资料。
  14. A                         由该行之末加入资料。
  15. i (insert)                 由游标之前加入资料。
  16. I                         由该行之首加入资料。
  17. o (open)                 新增一行於该行之下供输入资料之用。
  18. O                         新增一行於该行之上供输入资料之用。
  19.         删除与修改
  20. x                         删除游标所在该字元。
  21. X                         删除游标所在之前一字元。
  22. r                         用接於此指令之后的字元取代(replace)游标所在字元。如:ra将游标所在字元以 a 取代之。
  23. R                         进入取代状态,直到《ESC》为止。
  24. s                         删除游标所在之字元,并进入输入模式直到《ESC》。
  25. S                         删除游标所在之该行资料,并进入输入模式直到《ESC》。
  26.         光标的移动
  27. m<a-z>                设置书签<a-z>
  28. ‘<a-z>                移至书签<a-z>处
  29. 0                         移至该行之首
  30. $                         移至该行之末。
  31. e                        移动到下个字的最後一个字母
  32. w                         移动到下个字的第一个字母。
  33. b                         移动到上个字的第一个字母。
  34. ^                         移至该行的第一个字元处。
  35. H                         移至视窗的第一行。
  36. M                         移至视窗的中间那行。
  37. L                         移至视窗的最后一行。
  38. G                         移至该文件的最后一行。
  39. +                         移至下一列的第一个字元处。
  40. -        移至上一列的第一个字元处。
  41. :n                         移至该文件的第 n 列。
  42. n+                         移至游标所在位置之后的第 n 列。
  43. n-                         移至游标所在位置之前的第 n 列。
  44. <Ctrl><g>         显示该行之行号、文件名称、文件中最末行之行号、游标所在行号占总行号之百分比。

  45. (Vim) 光标移动基本用法小解:
  46. (这只要组合上边的功能就可以明白了,不用再一一讲解了吧!)
  47.                   ge     b                 w                                                    e
  48.                   ←    ←           ---→                                           --→
  49.         This is-a  line,  with special/separated/words (and some more).
  50.                 ←-  ←--           -----------------→                   ---→
  51.                 GE   B                                           W                                         E

  52.         视窗的移动
  53. <Ctrl><f>         视窗往下卷一页。
  54. <Ctrl><b>         视窗往上卷一页。
  55. <Ctrl><d>         视窗往下卷半页。
  56. <Ctrl><u>         视窗往上卷半页。
  57. <Ctrl><e>         视窗往下卷一行。
  58. <Ctrl><y>         视窗往上卷一行。
  59.         剪切、复制、删除
  60. Operator + Scope = command
  61.         Operator
  62. d                         剪切
  63. y                         复制。
  64. p                         粘帖,与 d 和 y 配和使用。可将最后d或y的资料放置於游标所在位置之行列下。
  65. c                         修改,类似delete与insert的组和。删除一个字组、句子等之资料,并插入新建资料。
  66.         Scope
  67. e                         由游标所在位置至该字串的最后一个字元。
  68. w                         由游标所在位置至下一个字串的第一个字元。
  69. b                         由游标所在位置至前一个字串的第一个字元。
  70. $                         由游标所在位置至该行的最后一个字元。
  71. 0                         由游标所在位置至该行的第一个字元。
  72.         整行动作
  73. dd                         删除整行。
  74. D                         以行为单位,删除游标后之所有字元。
  75. cc                         修改整行的内容。
  76. yy                        使游标所在该行复制到记忆体缓冲区。
  77.         取消前一动作(Undo)
  78. u                         恢复最后一个指令之前的结果。
  79. U                         恢复游标该行之所有改变。
  80. (vim) u                 可以多次撤消指令,一次撤消一个操作,直至本次操作开始为止。
  81. (vim) Ctrl+r        可以恢复撤消前内容,按多次可恢复多次。
  82.         查找与替换
  83. /字串                 往游标之后寻找该字串。
  84. ?字串                 往游标之前寻找该字串。
  85. n                         往下继续寻找下一个相同的字串。
  86. N                         往上继续寻找下一个相同的字串。
  87. %                        查找“(”,“)”,“{”,“}”的配对符。
  88. s                        搜寻某行列范围。
  89. g                        搜寻整个编辑缓冲区的资料。
  90. :1,$s/old/new/g 将文件中所有的『old』改成『new』。
  91. :10,20s/^/ /         将第10行至第20行资料的最前面插入5个空白。
  92. (vim)
  93. /字符串                 后边输入查询内容可保存至缓冲区中,可用↑↓进行以往内容选择。
  94. 另外:将光标移动在选定单词下方按*,则可以选中此单词作为查询字符,可以避免输入一长串字符的麻烦。
  95.         (vim) 大小写替换
  96. 首先用按v开启选择功能,然后用↑↓←→键来选定所要替换的字符,若是小写变大写,则按U;反之按u;
  97. 如果是选择单词,则可以在按v后,按w,最后按U/u,这样就可以将字符随意的改变大小写了,而不用删除后重新敲入。

  98.         资料的连接
  99. J                         句子的连接。将游标所在之下一行连接至游标该行的后面。
  100.         环境的设定
  101. :set all                可设置的环境变量列表
  102. :set                        环境变量的当前值
  103. :set nu                 设定资料的行号。
  104. :set nonu         取消行号设定。
  105. :set ai                 自动内缩。
  106. :set noai                 取消自动内缩。
  107. (vim)
  108. :set ruler                会在屏幕右下角显示当前光标所处位置,并随光移动而改变,占用屏幕空间较小,使用也比较方便,推荐使用。
  109. :set hlsearch        在使用查找功能时,会高亮显示所有匹配的内容。
  110. :set nohlsearch                关闭此功能。
  111. :set incsearch                使Vim在输入字符串的过程中,光标就可定位显示匹配点。
  112. :set nowrapscan        关闭查找自动回环功能,即查找到文件结尾处,结束查找;默认状态是自动回环

  113.         ex指令
  114.         读写资料
  115. :10,20w test         将第10行至第20行的资料写入test文件。
  116. :10,20w>>test 将第10行至第20行的资料加在test文件之后。
  117. :r test                 将test文件的资料读入编辑缓冲区的最后。
  118. :e [filename]        编辑新的文件。
  119. :e! [filename]        放弃当前修改的文件,编辑新的文件。
  120. :sh                        进入shell环境,使用exit退出,回到编辑器中。

  121. :!cmd                运行命令cmd后,返回到编辑器中。
  122.         删除、复制及搬移
  123. :10,20d                 删除第10行至第20行的资料。
  124. :10d                 删除第10行的资料。
  125. :%d                 删除整个编辑缓冲区。
  126. :10,20co30         将第10行至第20行的资料复制至第30行之后。
  127. :10,20mo30         将第10行至第20行的资料搬移至第30行之后。
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-6-23 22:54:41 | 显示全部楼层
Post by 哇哈哈;108969
我看了一些资料怎么就没有关于这方面的?

help p不就有么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表