维姆元';t在使用=命令时正确缩进Python代码
当我使用=命令缩进整个Python文件或部分时,它不会正确缩进。以下是我的vimrc:维姆元';t在使用=命令时正确缩进Python代码,python,vim,Python,Vim,当我使用=命令缩进整个Python文件或部分时,它不会正确缩进。以下是我的vimrc: set nocompatible syntax on set ruler set tabstop=2 set softtabstop=2 set shiftwidth=2 set expandtab set smarttab set hlsearch set incsearch set ignorecase set autoindent " turn on line numbers: set number "
set nocompatible
syntax on
set ruler
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
set smarttab
set hlsearch
set incsearch
set ignorecase
set autoindent
" turn on line numbers:
set number
" Toggle line numbers and fold column for easy copying:
nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>
nnoremap <F4> :set nospell!<CR>
nnoremap <F3> :set invpaste paste?<Enter>
imap <F3> <C-O><F3>
set pastetoggle=<F3>
filetype on
filetype plugin indent on
filetype plugin on
" Execute file being edited with <Shift> + e:
map <buffer> <S-e> :w<CR>:!/usr/bin/env python % <CR>
let g:solarized_termcolors=256
set background=dark
colorscheme solarized
"set spell spelllang=en_us
set backspace=indent,eol,start
autocmd FileType python set complete+=k~/.vim/syntax/python.vim isk+=.,(
autocmd VimEnter * NERDTree
设置不兼容
语法高亮
定尺
设置tabstop=2
设置softtabstop=2
设置shiftwidth=2
设置扩展选项卡
设置智能选项卡
高亮显示
在搜索中设置
置之不理
自动缩进
“打开行号:
设定数
“切换行号和折叠列以便于复制:
nnoremap:设置非数字!:设置foldcolumn=0
nnoremap:设置nospell!
nnoremap:设置粘贴粘贴?
imap
设置粘贴切换=
侦测文件类型
文件类型插件缩进
上的文件类型插件
“使用+e执行正在编辑的文件:
地图:w:!/usr/bin/env python%
设g:solarized_Term颜色=256
设置背景=暗
日光浴
“设置拼写spelllang=en_us
设置退格=缩进、下线、开始
autocmd文件类型python集完成+=k~/.vim/syntax/python.vim isk+=(
autocmd VimCenter*NERDTree
此外,当我使用w或b循环遍历python文件时,或者当删除它时,它不会正确删除。例如,它不会在.or上停止(当删除他们之前的作品时,甚至会删除这些。你应该去掉
上的文件类型和上的文件类型插件:
上的文件类型插件缩进是你唯一需要的一行
编辑
和(
的问题几乎肯定是由iskeyword
引起的。我模糊地记得有人也有同样的问题,因为他/她在一些错误的博客文章中发现他/她需要基于词典的完成。因为他/她的词典文件中的条目以的形式出现(
,他/她需要将
视为关键字字符
编辑Python文件时,请尝试以下命令:
:verbose set iskeyword?
它应该返回一个逗号分隔的值列表,其中包括
和(
及其设置位置。它很可能是第三方python ftplugin,因为默认的ftplugin不涉及iskeyword
这一行是导致
/问题的原因(
问题:
autocmd FileType python set complete+=k~/.vim/syntax/python.vim isk+=.,(
您绝对不需要这种完成机制,因为Vim的默认omnicompletion功能足够强大
由于完成机制是如何实现的,以及字典文件可能是如何编写的,
和(
必须被Vim视为关键字字符
您的自定义/语法文件甚至可能不是这样形成的,因此此设置甚至可能不起作用
isk
是iskeyword
的缩写形式,该选项定义了什么是关键字字符
你似乎从别人那里复制了设置,却不了解他们做了什么。简单的事实是,你的问题的答案是在你自己的~/.vimrc
中。这足以说明这个想法有多么错误。你可以正常粘贴:set paste
,我有一个非常方便的宏:
set pastetoggle=<F10>
设置粘贴切换=
您可以将其设置为任何其他键,只需将其添加到您的.vimrc
文件中即可。(deal,但使用=的缩进仍然不起作用。您有其他与python相关的第三方脚本吗?我相信只有python语法文件。从vim.org.vim下载的默认语法文件。那么我应该删除我下载的语法文件吗?