Vim 高级操作技巧:行号、宏、格式化与多文件处理

需积分: 12 0 下载量 109 浏览量 更新于2024-09-11 收藏 83KB DOC 举报
"这篇资源主要介绍了vim编辑器的一些高级技巧,包括插入行号、行号显示的开关、自定义行编号、文本过滤、格式化文本、多文件操作以及命令行技巧等,适合有一定vim基础的用户提升编辑效率。" 1. **插入行号**: - `:g/^/exec "s/^/".strpart(line("."),"", 0, 4)` 这个命令可以将所有行的开始插入当前行号,但只显示前四位。 - `%s/^/\=strpart(line(".")," ", 0, 5)` 则会替换每一行的开始,插入带有空格的当前行号,显示五位数。 - `%s/^/\=line('.').' '` 同样替换每一行开头,插入不带空格的当前行号。 2. **行号显示开关**: - `:set number` 命令用来显示行号。 - `:map <F12> :set number!<CR>` 将 `<F12>` 键映射为切换行号显示的快捷键。 3. **自定义行编号**: - `'a,'b!perl -pne 'BEGIN{$a=223} substr($_,2,0)=$a++'` 使用perl脚本从指定行开始编号。 4. **产生数字列表**: - `qqmnYP` 开始录制宏 `q`,选择一个范围,然后粘贴并增加行号。 - ``n^Aq` 结束宏并用 `@q` 重复宏,实现对整个文件或选中范围的操作。 5. **粘贴寄存器与过滤非可打印字符**: - `:'a,'by*` 复制一个范围到粘贴寄存器。 - `%y*` 复制括号匹配的内容到粘贴缓冲区。 - `.y*` 复制当前行到粘贴缓冲区。 - `nmap<leader>p:let@*=substitute(@*,'[^[:print:]]','','g')<cr>"*p` 将剪贴板内容过滤掉非可打印字符。 6. **文本格式化**: - `gq}`、`gqap` 和 `ggVGgq` 分别用于格式化当前段落、整个文档和选中段落。 - `:s/.\{,69\};\s*\|.\{,69\}\s\+/\&\r/g` 在70列时强制换行。 7. **多文件操作**: - `:argdo`、`:bufdo` 和 `:windo` 都可以配合 `%s` 命令在多个文件中进行操作。 - `:argdo exe '%!sort' | w!` 通过外部命令对所有文件进行排序并保存。 8. **命令行技巧**: - `gvim -h` 显示帮助。 - `ls | gvim -` 管道操作。 - `cat xx | gvim --c"v/^\d\d\|^[3-9]/d"` 从管道输出过滤内容。 - `gvim -o file1 file2` 分割窗口显示多个文件。 - `gvim.exe -c "/main" joe.c` 打开文件并跳转到指定行。 - 可以在打开文件时执行多条命令,如替换、更新等。 这些技巧可以帮助vim用户提高编辑效率,更灵活地处理文本和文件。熟练掌握这些技巧,能够让你在编程和文本编辑中更加得心应手。