禅道博客

分享专业技术知识,文章内容干货满满

读书笔记《Vim实用技巧》:命令行模式

2023-12-21 15:08:47
潘仙芝
原创 546
摘要:本文是《Vim使用技巧》的读书笔记。

一、技巧27 认识Vim的命令行模式

按下 : 键时,就会切换到命令行模式。

可以批量编辑文件里的文本,不需要使用可视模式。

我们常用的是
:set nonu
:set paste
:w
:wq

读写文件、创建新标签、分隔窗口、操作参数列表、缓冲区列表。

命令

用途

:[range]delete [x]

删除指定范围内的行[到寄存器x中]

:[range]yank [x]

复制指定范围内的行[到寄存器x中]

:[range]put [x]

在指定行后粘贴寄存器x中的内容

:[range]copy

把指定范围内的行拷贝到 指定行下

:[range]move

把指定范围内的行移动到 指定行下

:[range]jion

连接指定范围内的行

:[range]normal{commands}

对指定范围内的每一行执行普通模式命令{commands}

:[range]substitute/{pattern}/{string}/{flags}

对指定范围内出现{pattern}的地方替换为{string}

:[range]global/{pattern}/[cmd]

对指定范围内匹配{pattern}的所有行执行Ex命令{cmd}

二、技巧28 在一行或多行连续行上执行命令

1.用行号作为地址

:1   //跳到文件首行
:$   //跳到文件的尾行
:5p  //跳转到第5行,然后显示第5行内容
:3d  //跳转到第3行并删除第3行,不需要3G然后再dd


2.用地址指定一个范围

:2,5p   //显示第2行到第5行的内容,包含第2行和第5行
:2      //跳转到第2行
:.,$p   //显示当前行到末尾的所有行,.标识当前行
:%p     
:1,$p   //显示当前文件的所有行,%标识当前文件的所有行
:%s/Practical/Pragmatic/    //把每一行的第1个Practical替换为Pragmatic


3.用高亮选区指定范围

2G
VG
高亮选中2到末行
:'<,'>p   显示高亮选区< 开始,>结束的行


4.用模式指定范围

:/<html>/,/<\/html>/p     //显示<html>开始到<\/html>结束的行
等同于
:2,5p


5.用偏移对地址进行修正

:/<html>/+1,/<\/html>/-1p   //显示不包含<html>、<\/html>的行
:2
:.,.+3p
等同于
:2,5p


6.结论

符号

地址

1

文件的第一行

$

文件的最后一行

0

虚拟行,位于文件的第一行上面

.

光标所在行,当前行

'm

包含位置标记m的行

'<

高亮选区的起始行

'>

高亮选区的结束行

%

整个文件(:1,$ 的简写形式)

三、技巧29 使用 :t 和 :m 命令复制和移动行

:copy = :t   //可以把一行或者多行从文档的一部分复制到另一部分,copy to
:m           //可以不 一行或多行移动到文档的其他地方

1.用 :t 命令复制行(ex命令影响范围广且距离远)

:6copy.   //复制第6行到当前行下
:6t.

命令

用途

:6t.

把第6行复制到当前行下方

:t6

把当前行复制到第6行下方

:t.

复制当前行,等同于yyp

:t$

把当前行复制到文本末尾

:'<,'>t0

把高亮选中的行复制到文件开头


2.用 :m 命令移动行

Vjj           //高亮当前行,然后往下2行也都高亮,选中
:'<,'>m$      //把高亮选区移动到文件结尾
等同于
Vjj
dGp  //先删除高亮选区,跳转到文件结尾,然后再粘贴刚删除的文本

四、技巧30 在指定范围上执行普通模式命令

A;Esc             //先在第1行行尾插入;
jVG                //向下选中高亮到最后一行
:'<,'>normal .     //高亮选区的重复上一次的操作,都在行尾插入;

暂时没有记录
评论通过审核后显示。