vim粘贴缩进和复制去行号
解决vim粘贴无限缩进:
:set paste 将 Vim 切换到粘贴模式,可用于从一个窗口剪切或复制文本并粘贴到 Vim。它的使用会避免一些意想不到的效果。设置此选项可用于终端上运行的 Vim,因为那里 Vim 没法区别输入和粘贴的文本。在 GUI 里,Vim 知道何者来自粘贴,即使不打开 'paste' 也基本上不会做错。对 Vim 能自己处理鼠标点击的终端也是如此。
打开 'paste' 选项时 (包括它本来就是打开的也会如此):
- 屏蔽插入模式和命令行模式的映射
- 屏蔽缩写
- 'autoindent' 被复位
- 'expandtab' 被复位
- 'hkmap' 被复位
- 'revins' 被复位
- 'ruler' 被复位
- 'showmatch' 被复位
- 'softtabstop' 设为 0
- 'textwidth' 设为 0
- 'wrapmargin' 设为 0
- 'varsofttabstop' 设为 空
vim鼠标右键复制去行号:
:set nonu 取消行号,此时复制没有行号。
进阶:
默认设置行号,不设置粘贴模式,在有需求时使用快捷键开关。
;l
:行号开关,分号加小写l,开关行号。
至于paste就不研究了,因为我发现我的配置里没有这个问题,刚才出现是因为安装某个一键配置环境的脚本自动安装了旧版本的vim,用了yum包里自带的配置。
set nu
" 自定义前缀键,默认是\
let mapleader=";"
" 行号开关
function! ToggleNumber()
if &nu
set nonu "取消行号
else
set nu "显示行号
endif
endfunction
nmap <silent> <Leader>l :call ToggleNumber()<CR>
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。