Vim-Vim 自动换行

Vim-Vim 自动换行

瑾兮 发布于 2017-02-03 字数 148 浏览 1266 回复 1

一行文本,比如用空白作为换行标志,想绑定一个 map 将所有空白都替换成换行符
然后在新行最前面添加当前的行号。最好是能定制换行标志是什么字符

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛泛之交 2017-08-29 1 楼

insert模式

inoremap <space> <CR><ESC>:s/^/=line('.')<CR>:noh<CR>A

在insert模式下将 <space> 作为换行标志(可将<space>替换为所需的换行标志)
输入空格后会自动换行然后插入行号,继续处于insert模式。
使用的是Vim的replace 行号是=line('.')这个表达式提供。
:noh 是为了取消replace时match产生的高亮。

全文本替换

nnoremap nm :%s/ {1,}/="r".printf('%d',line('.')+1)/g<CR>:noh<CR>

在normal模式 输入 nm 将全文的空格(连续空格看作一个)替换为:换行+新行行号
要替换换行标志把 \{1,}前的空格替换即可。

全文加行号

nnoremap nm :%s/ {1,}/r/g<CR>:%s/^/=line('.')/g<CR>:noh<CR>

给全文都加上行号