当我从网页中复制一些代码并将其粘贴到 Vim 时,我发现它变得一团糟,像梯子一样:
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
由于它经常像这样弄乱,我想可能是我的.vimrc.
set number
set nocompatible
set nowritebackup
set noswapfile
syntax on
filetype indent on
filetype plugin on
filetype on
set background=light
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions=T
set fileencodings=utf-8,prc
set ruler
set incsearch
map gs :%s
set t_Co=256
:colorscheme evening
filetype plugin indent on
Run Code Online (Sandbox Code Playgroud)
通常我在 Vim 中编写 python,所以适当的缩进是至关重要的。
Ign*_*ams 56
这样做之前:
:set paste
Run Code Online (Sandbox Code Playgroud)
然后:
:set nopaste
Run Code Online (Sandbox Code Playgroud)
aXq*_*Xqd 17
http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
切换代码粘贴的自动缩进
背景
如果您使用 Vim 命令粘贴文本,则不会发生任何意外。该问题仅在从另一个应用程序粘贴时出现,并且仅在您未使用 Vim 的 GUI 版本时出现。在控制台或终端版本的 Vim 中,没有从另一个应用程序粘贴文本的标准程序。相反,终端可以通过将文本插入键盘缓冲区来模拟粘贴,因此 Vim 认为文本是用户输入的。每行结束后,Vim 可能会移动光标,以便下一行以与上一行相同的缩进开始。但是,这将更改粘贴文本中已有的缩进。
粘贴切换
将以下内容放入您的 vimrc(更改为您想要的任何键):
set pastetoggle=<F2>
Run Code Online (Sandbox Code Playgroud)
从另一个应用程序粘贴:
然后将保留粘贴文本的现有缩进。
您不必先启动插入模式,但如果您处于正常模式并且有 F2 的映射,则该映射将应用,并且“pastetoggle”功能将不会运行。
有些人喜欢通过 vimrc 的以下替代方案在状态行中显示的视觉反馈:
nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode
Run Code Online (Sandbox Code Playgroud)
第一行设置一个映射,以便在正常模式下按 F2 将反转 'paste' 选项,然后将显示该选项的值。第二行允许您在插入模式下按 F2,以打开和关闭“粘贴”。第三行可以显示在插入模式下是否打开了“粘贴”。
| 归档时间: |
|
| 查看次数: |
24464 次 |
| 最近记录: |