`

VI中的多行删除与复制

    博客分类:
  • vim
 
阅读更多

VI中的多行删除与复制
法一:
单行删除,:1(待删除行)d
多行删除 ,:1,10d
法二:
光标所在行,dd
光标所在行以下的N行,Ndd
方法1:
光标放到第6行,
输入:2yy
光标放到第9行,
输入:p
此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。
方法2:
命令行模式下输入
6,9 co 12
复制第6行到第9行之间的内容到第12行后面。
方法3:
有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要删除多行的话,可以用 :5, 9 de

VIM常用命令
常用命令

1) 光标命令
k,j,h,l---上下左右光标移动命令,虽然可以在Linux中使用键盘右边的四个光标键, 但是记住这四个命令还有非常有用的,也就是右手在键盘上放置的位置部分
nG ----n为行数,该命令立即使光标跳到指定行。
Ctrl+G-----光标所在位置的行数和列数报告
w,b------使光标向前或向后跳过一个单词
2) 编辑命令
i,a,r -------在光标的前,后,上方插入字符命令(i=insert,a=append,r=replace)
cw,dw------ 改变(置换)/删除光标所在处的单词的命令 (c=change,d=delete)
x,d$,dd -----删除一个字符,光标所在处到行尾的所有字符,和整行的命令
3) 查找命令
/string, ?string-----从光标所在处向后/向前查找相应的字符串的命令
4)拷贝复制命令
yy,p -----拷贝一行到剪贴板/取出剪贴板中内容的命令

常见问题及应用技巧
1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分
vi file
:r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd
:%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分
:3r /etc/passwd 这是在指定的行号后面读入文件内容
另外一种方法删掉文件中所有的空行及以#开始的注释行
#cat squid.conf.default | grep -v '^$' | grep -v '^#'

2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘
vi file
:w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1
:20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1
3) 用VI编辑一个文件,但需要删除大段大段的内容
vi file
Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G.
:23,1045d 假定两次行号为23和1045,则把这几间的内容全删除

也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.
4) 在整个文件或某几行中在行首或行尾加一些字符串
vi file
:3,$s/^/some string / 在文件的第一行至最后一行的行首前插入some string
:%s/$/ some string/g 在整个文件每一行的行尾添加 some string

:%s/string1/string2/g 在整个文件中替换string1成string2
:3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2

Note: s为substitute,%表示所有行,g表示global

5) 同时编辑两个文件,在两个文件中拷贝剪贴文本
vi file1 file2
yy 同时打开两个文件,在文件1的光标所在处拷贝所在行
:n 切换到文件2 (n=next)
p 在文件2的光标所在处粘贴所拷贝的行
:N 切换回文件1
6) 替换文件中的路径

:%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin
或者用
:%s//usr/bin//bin/g 在'/'前用符号指出'/'是真的单个字符'/'
7) 用 vi 多行注释
如果要给多行程序作注释,一个笨办法就是 插入 # ,然后用 j 跳到下一行用 . 命令,重复上个命令。如果要注释几百行,这样的方法恐怕太愚蠢了。一个聪明的办法是:
:.,+499 s/^/#/g
若需全文的行首插入可用以下命令
:%s/^/#/g

分享到:
评论

相关推荐

    vi技巧大全命令大全

    ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。 进入vi vi test 离开vi :q! 离开vi,并放弃刚在缓冲区内编辑的内容。 :wq 将缓冲区内的资料写入磁盘中,并离开vi。 :ZZ 同wq 同wq :w ...

    vI.rar_vi

    - 复制与粘贴:`yy`复制当前行,`p`在光标下方粘贴,`P`在光标上方粘贴。 - 查找与替换:`/word`查找"word",`n`下一个,`N`上一个。`:s/old/new/g`将当前行所有"old"替换为"new",`:g/old/s//new/g`全局替换。 3...

    Linux的vi编辑器

    Linux的vi编辑器是Unix和Linux系统中的标准文本编辑器,具有强大的功能,与现代文本编辑器相比毫不逊色。本文将简要介绍vi编辑器的使用方法和基础指令。 vi编辑器主要有三种模式:命令模式、插入模式和底行模式。在...

    vi.rar_vi

    3. 复制与粘贴:yy(复制当前行),p(粘贴到光标下方),P(粘贴到光标上方)。 4. 查找与替换:/关键字(向下查找),?关键字(向上查找),:s/原字符串/新字符串/g(全局替换)。 三、插入模式下的操作 在插入...

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

    4. **复制与粘贴**:`yy`复制当前行,`p`在当前行下方粘贴,`P`在上方粘贴。 5. **查找与替换**:`:/{搜索内容}`查找,`:s/{查找}/{替换}/g`替换当前行中的内容,`:%s/{查找}/{替换}/g`全局替换。 **五、进阶技巧**...

    VI.rar_vi

    - 复制与粘贴:`yy`复制当前行,`p`在当前行下方粘贴,`P`在当前行上方粘贴。 - 查找与替换:`/text`查找text,`:s/text1/text2/g`全局替换text1为text2。 4. **块选择与操作** - 使用`V`进入可视行选择模式,`...

    vi文本编辑器

    vi文本编辑器是Linux系统中的一个基础且强大的文本编辑工具,尤其对于初学者而言,掌握vi的基本使用方法至关重要。vi编辑器主要有三个工作模式:命令模式(Command Mode)、插入模式(Insert Mode)和底行模式(Last...

    Unix_Vi.zip_vi

    - 复制与粘贴:`yy`复制当前行,`p`在当前行下粘贴,`P`在当前行上粘贴。 - 查看行号:`:set nu`显示行号,`:set nonu`隐藏行号。 3. 插入模式操作 - 进入插入模式:在命令模式下按`i`(在当前光标前插入),`a`...

    VI 命令 Linux

    - **删除、复制和粘贴**:`x`和`X`用于删除单个字符,`dd`删除当前行,`ndd`删除多行,`yy`复制一行,`nyy`复制多行,`p`和`P`粘贴到光标下一行或上一行,`u`恢复上一步操作,`Ctrl+r`重做,`.`重复前一个动作。...

    一张图片VI编辑命令

    VI(Visual Editor)编辑器,是Linux和Unix系统中的一个强大的文本编辑工具。这张名为"vi.jpg"的图片显然提供了一种直观的方式,帮助初学者理解并掌握VI编辑器的基本操作命令。对于刚接触这个编辑器的新手来说,了解...

    vi编辑器的使用

    5. 文本的删除操作包括`x`删除单个字符,`#x`删除指定数量的字符,`dw`删除单词,`#dw`删除多个单词,`dd`删除当前行,`#dd`删除多行,`d$`删除至行尾,`J`连接两行。 6. 撤销和恢复功能是vi的重要特性,`u`键可以...

    vi常用命令汇总.docx

    vi 编辑器是 Linux 操作系统中的一个文本编辑器,具备了丰富的功能,以下是 vi 编辑器常用命令的汇总。 打开文件、保存文件和退出 * 打开文件:vi 文件名 * 打开文件并跳转到指定行号:vi 文件名 +行号 * 退出 vi...

    linux vi命令集合

    - **文本复制与粘贴** - `yy`:复制当前行。 - `nyy`:复制当前行及其后的n行。 - `p`:将剪切板中的内容粘贴到光标所在位置之后。 - `P`:将剪切板中的内容粘贴到光标所在位置之前。 - **文本删除** - `x`:...

    常用vi命令集合.zip

    6. 复制与粘贴: - **yy**:复制当前行。 - **nyy**:复制当前行及其下方n行。 - **p**:在光标后粘贴已复制的内容。 - **P**:在光标前粘贴已复制的内容。 7. 撤销与重做: - **u**:撤销上一步操作。 - **...

    for-vi-.rar_vi

    3. **复制与粘贴**: - `yy`:复制当前行。 - `p`:在光标下方粘贴。 - `P`:在光标上方粘贴。 4. **查找与替换**: - `/pattern`:向下查找模式`pattern`。 - `?pattern`:向上查找模式`pattern`。 - `:s/...

    常用vi命令的操作

    - 删除一整行使用`dd`,连续删除多行时,前面加数字如`20dd`代表删除20行。 - `yy`用于复制当前行,前面加数字如`20yy`则复制20行。 - `p`和`P`分别用于在光标之后和之前粘贴之前复制或删除的内容。 - `J`用于合并...

    Linux下最基本的文本编辑器vi使用方法

    指令模式下的删除、复制与粘贴 * 删除: + x:向后删除一个字符(del 键)。 + X:向前删除一个字符(backspace 键)。 + nx:连续向后删除 n 个字符。 + dd:删除光标所在的那一整行。 + ndd:删除光标所在的...

Global site tag (gtag.js) - Google Analytics