"这篇资源主要介绍了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用户提高编辑效率,更灵活地处理文本和文件。熟练掌握这些技巧,能够让你在编程和文本编辑中更加得心应手。