vim配置python开发环境-用vim配置python环境
Linux 本质上是一个基于字符的操作系统,它与图形化的 Windows 命令行有着根本的区别。 因此,一个好的文本编辑器对于Linux操作系统来说是非常重要的。
作为一个历史悠久的跨平台文本编辑器,vim 最初是继承自 Unix 系统的 vi 编辑器。 它功能强大,支持大量的扩展,经过适当的定制,vim 可以成为任何语言的集成开发环境。 您甚至根本不需要安装那些笨重的 IDE 软件(如果安装的插件太多,vim 会非常大)。
然而,时间真是一把屠刀。 在当今时代,悠久的历史未必是值得炫耀的资本。 由于人脑习惯性的路径依赖,丰富的经验总会最终成为阻碍一个人继续发展的累赘。 所以当追随者向vim项目提交大量看似激进的功能更新请求时,vim项目组表现出了相当程度的迟钝和傲慢。
于是原来的追随者变成了革命者。 来自巴西的程序员 Thiago de Arruda Padilha(又名 tarruda)启动了 Vim 分支项目 Neovim。 他筹集了 10,000 美元来构建这个 21 世纪的文本编辑器,声称 neovim 提供了更好的脚本和插件支持,并结合了更现代的图形界面。 Neo 的意思是“新”,它是 Vim 在这个新时代的重生。
下面我以Manjaro Linux为例简单介绍一下neovim的安装和基本配置。 (其他发行版的安装过程基本相同)
1.安装neovim等插件依赖
sudo pacman -S neovim python-pynvim
sudo pacman -S python-pip
pip install pynvim
pip install jedi
2.创建基础配置文件
mkdir ~/.config/nvim
cd ~/.config/nvim
vi init.vim
# 添加如下内容
call plug#begin("~/.vim/plugged")
Plugin Section
call plug#end()
Section
初始配置文件分为上下两部分。 接下来需要安装和使用的插件都写在上面的配置部分“Plugin Action”; 这些插件的详细配置内容写在下面的配置部分“Config Section”中。 所以对于各个插件的安装和具体配置,我会把内容分成上下两部分来展示,让大家清楚的了解他们在做什么。
3.添加主题插件
" Plugin Section
Plug 'dracula/vim'
Plug 'morhetz/gruvbox'
" Config Section
if (has("termguicolors"))
set termguicolors
endif
syntax enable
colorscheme dracula
这里推荐两个我比较喜欢的主题插件vim配置python开发环境,大家也可以根据自己的喜好进行修改。 配置文件修改完成后,我们需要进行插件的安装操作,才能使插件生效。 常用的安装方式有两种,一种是在终端运行nvim +PlugInstall; 另一种是先进入nvim运行界面,然后在其中输入:PlugInstall命令。 以上命令运行后vim配置python开发环境,nvim会自动执行插件的下载安装。 安装完成后,我们可以重启nvim看看最终的配置效果。
4.文件浏览器插件
" Plugin Section
Plug 'scrooloose/nerdtree'
Plug 'ryanoasis/vim-devicons'
" Config Section
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = []
let g:NERDTreeStatusline = ''
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" Toggle
nnoremap
:NERDTreeToggle
插件安装成功后,我们可以在nvim界面按Ctrl+B快捷键浏览文件目录。
5.激活终端和窗口切换快捷键
" Config Section
" 在右侧和下发切分窗口
set splitright
set splitbelow
" 按 ESC 键返回普通模式
tnoremap <Esc> <C-\><C-n>
au BufEnter * if &buftype == 'terminal' | :startinsert | endif
" 按 ctrl+n 开启终端
function! OpenTerminal()
split term://bash
resize 10
endfunction
nnoremap <c-n> :call OpenTerminal()<CR>
" 切换窗口 alt+hjkl
tnoremap <A-h> <C-\><C-n><C-w>h
tnoremap <A-j> <C-\><C-n><C-w>j
tnoremap <A-k> <C-\><C-n><C-w>k
tnoremap <A-l> <C-\><C-n><C-w>l
nnoremap <A-h> <C-w>h
nnoremap <A-j> <C-w>j
nnoremap <A-k> <C-w>k
nnoremap <A-l> <C-w>l
6.搜索文件
" Plugin Section
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" Config Section
nnoremap
:FZF let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit'
\}
搜索 Ctrl+P; 打开 Ctrl+tsv
7.自动补全插件
" Plugin Section
Plug 'zchee/deoplete-jedi'
" Config Section
autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif
inoremap
pumvisible() ? "\ " : "\"
8.状态栏插件
" Plugin Section
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" Config Section
let g:airline_theme='light' " 这指定主题名称
9.安装电力线字体
//github.com/powerline/fonts.git --depth=1 :
cd fonts
./install.sh
" Config Section
let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
10.自动关闭插件
" Plugin Section
Plug 'jiangmiao/auto-pairs'
11.F5自动运行
" Config Section
map
:call CompileRunGcc() func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec '!g++ % -o %<'
exec '!time ./%<'
elseif &filetype == 'cpp'
exec '!g++ % -o %<'
exec '!time ./%<'
elseif &filetype == 'python'
exec '!time python %'
elseif &filetype == 'sh'
:!time bash %
endif
endfunc
最终效果: