由于马上将用到django框架,需要有一个好的ide来coding,之前做C的开发时候体会到了vim的强大,所以编写python也决定采用vim。

PS:除了vim,一般浏览代码多用atom和sublime,具体可以自己google。

之前做C的项目时采用了spf13-vim,git地址:https://github.com/spf13/spf13-vim。喜欢的同学可以去下载。

这里由于环境限制,准备配置一套新的简单一些的vim。好久没有配置了,这里写个文档记录下来,重新温习一遍。

这里推荐一大神的配置 http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide 这个地址如果访问不了,看这里:http://www.tuicool.com/articles/ZRv6Rv

我没有采用这个配置 感觉配置太重 没必要 python开发不需要太多辅助工具,够用就行。

1、安装

vim --version 查看vim版本

在这一步,你要确保已经满足以下两点要求:

  1. Vim编辑版本应该大于7.3。

  2. 支持Python语言。在所选编辑器的功能中,确保你看到了+python

然后 yum update;yum install -y vim

2、验证安装

确保你已经安装了7.3版本以上、支持Python的Vim编辑器。你可以再次运行vim --version进行确认。如果你想知道Vim中使用的Python版本,你可以在编辑器中运行:python import sys; print(sys.version)

1
2
3
4
5
[root@server-15 steth]# python
Python 2.7.5 (default, Sep 15 2016, 22:37:39)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help""copyright""credits" or "license" for more information.
>>>

这行命令会输出你的编辑器当前的Python版本。如果报错,那么你的编辑器就不支持Python语言,需要重装或重新编译。

Vim编辑器安装完成后,我们来看看如何将其设置为Python开发的强大环境。

3、Vundle

Vim有多个扩展管理器,但是我们强烈推荐Vundle。你可以把它想象成Vim的pip。有了Vundle,安装和更新包这种事情不费吹灰之力。

我们现在来安装Vundle:

  1. git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

该命令将下载Vundle插件管理器,并将它放置在你的Vim编辑器bundles文件夹中。现在,你可以通过.vimrc配置文件来管理所有扩展了。

将配置文件添加到你的用户的home文件夹中:

  1. touch ~/.vimrc

接下来,把下来的Vundle配置添加到配置文件的顶部:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
set nocompatible              " required
filetype off                  " required
 
set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
 
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
 
let Vundle manage Vundle, required
<strong>Plugin 'gmarik/Vundle.vim'</strong>
 
" Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)
 
" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

这样,你就完成了使用Vundle前的设置。之后,你就可以在配置文件中添加希望安装的插件,然后打开Vim编辑器,运行下面的命令:

  1. :PluginInstall

这个命令告诉Vundle施展它的魔法——自动下载所有的插件,并为你进行安装和更新。

之后 如果想要安装其他新的插件 就按照这个格式写入.vimrc配置文件即可。(注意.vimrc文件必须放在~目录下才会被识别)

4、vimrc配置

提供一套我的暂时的配置:

  1. 1 "vundle
  2. 2 set nocompatible
  3. 3 filetype off
  4. 4
  5. 5 set rtp+=~/.vim/bundle/Vundle.vim
  6. 6 call vundle#begin()
  7. 7
  8. 8 Plugin 'VundleVim/Vundle.vim'
  9. 9 "git interface
  10. 10 Plugin 'tpope/vim-fugitive'
  11. 11 "filesystem
  12. 12 Plugin 'scrooloose/nerdtree'
  13. 13 Plugin 'jistr/vim-nerdtree-tabs'
  14. 14 Plugin 'kien/ctrlp.vim'
  15. 15
  16. 16 "html
  17. 17 " isnowfy only compatible with python not python3
  18. 18 Plugin 'isnowfy/python-vim-instant-markdown'
  19. 19 Plugin 'jtratner/vim-flavored-markdown'
  20. 20 Plugin 'suan/vim-instant-markdown'
  21. 21 Plugin 'nelstrom/vim-markdown-preview'
  22. 22 "python sytax checker
  23. 23 Plugin 'nvie/vim-flake8'
  24. 24 Plugin 'vim-scripts/Pydiction'
  25. 25 Plugin 'vim-scripts/indentpython.vim'
  26. 26 Plugin 'scrooloose/syntastic'
  27. 27
  28. 28 "auto-completion stuff
  29. 29 "Plugin 'klen/python-mode'
  30. 30 Plugin 'Valloric/YouCompleteMe'
  31. 31 Plugin 'klen/rope-vim'
  32. 32 "Plugin 'davidhalter/jedi-vim'
  33. 33 Plugin 'ervandew/supertab'
  34. 34 ""code folding
  35. 35 Plugin 'tmhedberg/SimpylFold'
  36. 36
  37. 37 "Colors!!!
  38. 38 Plugin 'altercation/vim-colors-solarized'
  39. 39 Plugin 'jnurmine/Zenburn'
  40. 40
  41. 41 call vundle#end()
  42. 42
  43. 43 filetype plugin indent on " enables filetype detection
  44. 44 let g:SimpylFold_docstring_preview = 1
  45. 45
  46. 46 "autocomplete
  47. 47 let g:ycm_autoclose_preview_window_after_completion=1
  48. 48
  49. 49 "custom keys
  50. 50 let mapleader=" "
  51. 51 map <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
  52. 52 "
  53. 53 call togglebg#map("<F5>")
  54. 54 "colorscheme zenburn
  55. 55 "set guifont=Monaco:h14
  56. 56
  57. 57 let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree
  58. 58
  59. 59 "I don't like swap files
  60. 60 set noswapfile
  61. 61
  62. 62 "turn on numbering
  63. 63 set nu
  64. 64
  65. 65 "python with virtualenv support
  66. 66 py << EOF
  67. 67 import os.path
  68. 68 import sys
  69. 69 import vim
  70. 70 if 'VIRTUA_ENV' in os.environ:
  71. 71 project_base_dir = os.environ['VIRTUAL_ENV']
  72. 72 sys.path.insert(0, project_base_dir)
  73. 73 activate_this = os.path.join(project_base_dir,'bin/activate_this.py')
  74. 74 execfile(activate_this, dict(__file__=activate_this))
  75. 75 EOF
  76. 76
  77. 77 "it would be nice to set tag files by the active virtualenv here
  78. 78 ":set tags=~/mytags "tags for ctags and taglist
  79. 79 "omnicomplete
  80. 80 autocmd FileType python set omnifunc=pythoncomplete#Complete
  81. 81
  82. 82 "------------Start Python PEP 8 stuff----------------
  83. 83 " Number of spaces that a pre-existing tab is equal to.
  84. 84 au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=4
  85. 85
  86. 86 "spaces for indents
  87. 87 au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
  88. 88 au BufRead,BufNewFile *.py,*.pyw set expandtab
  89. 89 au BufRead,BufNewFile *.py set softtabstop=4
  90. 90
  91. 91 " Use the below highlight group when displaying bad whitespace is desired.
  92. 92 highlight BadWhitespace ctermbg=red guibg=red
  93. 93
  94. 94 " Display tabs at the beginning of a line in Python mode as bad.
  95. 95 au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/
  96. 96 " Make trailing whitespace be flagged as bad.
  97. 97 au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
  98. 98
  99. 99 " Wrap text after a certain number of characters
  100. 100 au BufRead,BufNewFile *.py,*.pyw, set textwidth=100
  101. 101
  102. 102 " Use UNIX (\n) line endings.
  103. 103 au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
  104. 104
  105. 105 " Set the default file encoding to UTF-8:
  106. 106 set encoding=utf-8
  107. 107
  108. 108 " For full syntax highlighting:
  109. 109 let python_highlight_all=1
  110. 110 syntax on
  111. 111
  112. 112 " Keep indentation level from previous line:
  113. 113 autocmd FileType python set autoindent
  114. 114
  115. 115 " make backspaces more powerfull
  116. 116 set backspace=indent,eol,start
  117. 117
  118. 118
  119. 119 "Folding based on indentation:
  120. 120 autocmd FileType python set foldmethod=indent
  121. 121 "use space to open folds
  122. 122 nnoremap <space> za
  123. 123 "----------Stop python PEP 8 stuff--------------
  124. 124
  125. 125 "js stuff"
  126. 126 autocmd FileType javascript setlocal shiftwidth=2 tabstop=2

5、配置讲解

使用:sv <filename>命令打开一个文件,你可以纵向分割布局(新文件会在当前文件下方界面打开),使用相反的命令:vs <filename>, 你可以得到横向分割布局(新文件会在当前文件右侧界面打开)。

你还可以嵌套分割布局,所以你可以在分割布局内容再进行分割,纵向或横向都可以,直到你满意为止。众所周知,我们开发时经常需要同时查看多个文件。

贴士:记得在输入完:sv后,利用tab补全功能,快速查找文件。

贴士:你还可以指定屏幕上可以进行分割布局的区域,只要在.vimrc文件中添加下面的代码即可:

  1. set splitbelow
  2. set splitright

贴士:想要不使用鼠标就切换分割布局吗?只要将下面的代码添加到.vimrc文件中,你就可以通过快捷组合键进行切换。

  1. "split navigations
  2. nnoremap <C-J> <C-W><C-J>
  3. nnoremap <C-K> <C-W><C-K>
  4. nnoremap <C-L> <C-W><C-L>
  5. nnoremap <C-H> <C-W><C-H>

组合快捷键:

  • Ctrl-j 切换到下方的分割窗口

  • Ctrl-k 切换到上方的分割窗口

  • Ctrl-l 切换到右侧的分割窗口

  • Ctrl-h 切换到左侧的分割窗口

换句话说, 按Ctrl+Vim的标准移动键,就可以切换到指定窗口。

nnoremap是什么意思?——简单来说,nnoremap将一个组合快捷键映射为另一个快捷键。一开始的n,指的是在Vim的正常模式(Normal Mode)下,而不是可视模式下重新映射。基本上,nnoremap <C-J> <C-W><C-j>就是说,当我在正常模式按下<C-J>时,进行<C-W><C-j>操作。更多信息请看这里

缓冲区(Buffers)

虽然Vim支持tab操作,仍有很多人更喜欢缓冲区和分割布局。你可以把缓冲区想象成最近打开的一个文件。Vim提供了方便访问近期缓冲区的方式,只需要输入:b <buffer name or number>,就可以切换到一个已经开启的缓冲区(此处也可使用自动补全功能)。你还可以通过ls命令查看所有的缓冲区。

专业贴士: 在:ls命令输出的最后,Vim会提示“敲击Enter继续查看”,这时你可以直接输入:b <buffer name>,立即选择缓冲区。这样可以省掉一个按键操作,也不必去记忆缓冲区的名字。

代码折叠(Code Folding)

大多数“现代”集成开发环境(IDE)都提供对方法(methods)或类(classes)进行折叠的手段,只显示类或方法的定义部分,而不是全部的代码。

你可以在.vimrc中添加下面的代码开启该功能:

  1. " Enable folding
  2. set foldmethod=indent
  3. set foldlevel=99

这样就可以实现,但是你必须手动输入za来折叠(和取消折叠)。使用空格键会是更好的选择。所以在你的配置文件中加上这一行命令吧:

  1. " Enable folding with the spacebar
  2. nnoremap <space> za

现在你可以轻松地隐藏掉那些当前工作时不需要关注的代码了。

第一个命令,set foldmethod=ident会根据每行的缩进开启折叠。但是这样做会出现超过你所希望的折叠数目。但是别怕,有几个扩展就是专门解决这个问题的。在这里,我们推荐SimplyFold。在.vimrc中加入下面这行代码,通过Vundle进行安装:

  1. Plugin 'tmhedberg/SimpylFold'

不要忘记执行安装命令::PluginInstall

专业贴士: 希望看到折叠代码的文档字符串?

  1. let g:SimpylFold_docstring_preview=1

Python代码缩进

当然,想要代码折叠功能根据缩进情况正常工作,那么你就会希望自己的缩进是正确的。这里,Vim的自带功能无法满足,因为它实现不了定义函数之后的自动缩进。我们希望Vim中的缩进能做到以下两点:

  • 首先,缩进要符合PEP8标准。

  • 其次,更好地处理自动缩进。

PEP8

要支持PEP8风格的缩进,请在.vimrc文件中添加下面的代码:

  1. au BufNewFile,BufRead *.py
  2. \ set tabstop=4
  3. \ set softtabstop=4
  4. \ set shiftwidth=4
  5. \ set textwidth=79
  6. \ set expandtab
  7. \ set autoindent
  8. \ set fileformat=unix

这些设置将让Vim中的Tab键就相当于4个标准的空格符,确保每行代码长度不超过80个字符,并且会以unix格式储存文件,避免在推送到Github或分享给其他用户时出现文件转换问题。

另外,对于全栈开发,你可以设置针对每种文件类型设置au命令:

  1. au BufNewFile,BufRead *.js, *.html, *.css
  2. \ set tabstop=2
  3. \ set softtabstop=2
  4. \ set shiftwidth=2

自动缩进

自动缩进有用,但是在某些情况下(比如函数定义有多行的时候),并不总是会达到你想要的效果,尤其是在符合PEP8标准方面。我们可以利用indentpython.vim插件,来解决这个问题:

  1. Plugin 'vim-scripts/indentpython.vim'

标示不必要的空白字符

我们希望避免出现多余的空白字符。可以让Vim帮我们标示出来,使其很容易发现并删除。

  1. au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/

这会将多余的空白字符标示出来,很可能会将它们变成红色突出。

支持UTF-8编码

大部分情况下,进行Python开发时你应该使用UTF-8编码,尤其是使用Python 3的时候。确保Vim设置文件中有下面的命令:

  1. set encoding=utf-8

自动补全

支持Python自动补全的最好插件是YouCompleteMe。我们再次使用Vundle安装:

  1. Plugin 'Valloric/YouCompleteMe'

安装会在下一章说明。

安装完成后,插件自带的设置效果就很好,但是我们还可以进行一些小的调整:

  1. let g:ycm_autoclose_preview_window_after_completion=1
  2. map <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>

上面的第一行确保了在你完成操作之后,自动补全窗口不会消失,第二行则定义了“转到定义”的快捷方式。

支持Virtualenv虚拟环境

上面“转到定义”功能的一个问题,就是默认情况下Vim不知道virtualenv虚拟环境的情况,所以你必须在配置文件中添加下面的代码,使得Vim和YouCompleteMe能够发现你的虚拟环境:

  1. "python with virtualenv support
  2. py << EOF
  3. import os
  4. import sys
  5. if 'VIRTUAL_ENV' in os.environ:
  6. project_base_dir = os.environ['VIRTUAL_ENV']
  7. activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
  8. execfile(activate_this, dict(__file__=activate_this))
  9. EOF

这段代码会判断你目前是否在虚拟环境中编辑,然后切换到相应的虚拟环境,并设置好你的系统路径,确保YouCompleteMe能够找到相应的site packages文件夹。

语法检查/高亮

通过安装syntastic插件,每次保存文件时Vim都会检查代码的语法:

  1. Plugin 'scrooloose/syntastic'

还可以通过这个小巧的插件,添加PEP8代码风格检查:

  1. Plugin 'nvie/vim-flake8'

最后,让你的代码变得更漂亮:

  1. let python_highlight_all=1
  2. syntax on

配色方案

配色方案可以和你正在使用的基础配色共同使用。GUI模式可以尝试solarized方案, 终端模式可以尝试Zenburn方案

  1. Plugin 'jnurmine/Zenburn'
  2. Plugin 'altercation/vim-colors-solarized'

接下来,只需要添加一点逻辑判断,确定什么模式下使用何种方案就可以了:


  1. if has('gui_running')
  2. set background=dark
  3. colorscheme solarized
  4. else
  5. colorscheme Zenburn
  6. endif

Solarized方案同时提供了暗色调和轻色调两种主题。要支持切换主题功能(按F5)也非常简单,只需添加:

  1. call togglebg#map("<F5>")

文件浏览

如果你想要一个不错的文件树形结构,那么NERDTree是不二之选。

  1. Plugin 'scrooloose/nerdtree'

如果你想用tab键,可以利用vim-nerdtree-tabs插件实现:


  1. Plugin 'jistr/vim-nerdtree-tabs'

还想隐藏.pyc文件?那么再添加下面这行代码吧:

  1. let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree

超级搜索

想要在Vim中搜索任何文件?试试ctrlP插件吧:

  1. Plugin 'kien/ctrlp.vim'

正如插件名,按Ctrl+P就可以进行搜索。如果你的检索词与想要查找的文件相匹配的话,这个插件就会帮你找到它。哦,对了——它不仅仅可以搜索文件,还能检索标签!更多信息,可以观看这个Youtube视频.

显示行号

开启显示行号:

  1. set nu

Git集成

想要在Vim中执行基本的Git命令?vim-fugitive插件则是不二之选。

  1. Plugin 'tpope/vim-fugitive'

请看Vimcasts的这部视频,了解更多情况。

Powerline状态栏

Powerline是一个状态栏插件,可以显示当前的虚拟环境、Git分支、正在编辑的文件等信息。

这个插件是用Python编写的,支持诸如zsh、bash、tmux和IPython等多种环境。

  1. Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}

请查阅插件的官方文档,了解配置选项。

系统剪贴板

通常Vim会忽视系统剪贴板,而使用自带的剪贴板。但是有时候你想从Vim之外的程序中剪切、复制、粘贴文本。在OS X平台上,你可以通过这行代码访问你的系统剪贴板:

  1. set clipboard=unnamed

Shell开启Vim编辑模式

最后,当你熟练掌握了Vim和它的键盘快捷方式之后,你会发现自己经常因为shell中缺乏相同的快捷键而懊恼。没关系,大部分的shell程序都有Vi模式。在当前shell中开启Vi模式,你只需要在~/.inputrc文件中添加这行代码:

  1. set editing-mode vi

现在,你不仅可以在shell中使用Vim组合快捷键,还可以在Python解释器以及任何利用GNU Readline程序的工具(例如,大多数的数据库shell)中使用。现在,你在什么地方都可以使用Vim啦!

6、YouCompleteMe

youcompleteme安装比较特殊,需要编译才能用。

官网的文档链接在这里:https://github.com/Valloric/YouCompleteMe

编译之前,首先要安装plugin  根据我的配置,这时plugin已经都安装完毕(YouCompleteMe安装时间比较长,请耐心等待)

安装完后,进入YoucompleteMe目录,

#cd ~/.vim/bundle/YoucompleteMe

#./install --clang-completer   //PS这里可以使用install --help查看支持哪些补全

#cp third_party/ycmd/examples/.ycm_extra_conf.py ~/

即可

好了,可以直接体验了。当然以前的cscope以及ctags实际上还是有用的,在看linux内核的时候还是比较依赖这些标签库。

YoucompleteMe的好处是智能分析,不像以前的ctags靠字母乱猜。

注意:可能编译会报错,很有可能是你的依赖包没有装完,请确定安装所有依赖包,确定vim的版本python版本:Make sure you have Vim 7.3.598 with Python 2 or Python 3 support

 Install development tools and CMake: sudo yum install automake gcc gcc-c++ kernel-devel cmake(这是官网提供的依赖)

Make sure you have Python headers installed: sudo dnf install python-devel python3-devel.(python开发包)

  1. Compiling YCM with semantic support for C-family languages:
  2.  
  3. cd ~/.vim/bundle/YouCompleteMe
  4. ./install.py --clang-completer
  5.  
  6. Compiling YCM without semantic support for C-family languages:
  7.  
  8. cd ~/.vim/bundle/YouCompleteMe
  9. ./install.py
  10.  
  11. The following additional language support options are available:
  12.  
  13. C# support: install Mono and add --omnisharp-completer when calling ./install.py.
  14. Go support: install Go and add --gocode-completer when calling ./install.py.
  15. TypeScript support: install Node.js and npm then install the TypeScript SDK with npm install -g typescript.
  16. JavaScript support: install Node.js and npm and add --tern-completer when calling ./install.py.
  17. Rust support: install Rust and add --racer-completer when calling ./install.py.
  18.  
  19. 这是编译选项,支持各种语言的补齐,如果只需要开发python代码,选择第二种即可。

效果图:

Vim配置(python版)的更多相关文章

  1. vim配置python开发环境

    vim配置python开发环境 一.安装vim sudo apt-get install vim 二.vim基础配置 #Centos6.5 /usr/share/vim/vim72 vi /etc/v ...

  2. vim配置python编程环境及YouCompleteMe的安装教程

    python号称人工智能语言,现在可算大热,这篇博客将介绍如何用vim打造一款自己专属的python编程环境. step1 由于安装YouCompleteMe需要vim8.0及以上版本,所以得安装使用 ...

  3. vim配置python开发环境(转)

    安装 因为许多Unix衍生系统已经预装了Vim,我们首先要确认编辑器是否成功安装: vim --version 如果已经安装了,你应该看到类似下面的文字: VIM - Vi IMproved 7.3 ...

  4. [转] vim配置python自动补全

    vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 1.简单python关键词补全 2.python 函数补全带括号 3.python 模块补全 4.pyt ...

  5. VIM 配置python

    Pre-install sudo yum install automake gcc gcc-c++ kernel-devel cmake sudo yum install python-devel p ...

  6. python开发环境必备之vim配置

    俗话说:工欲善其事,必先利其器.最近使用python,习惯了liunx和vim,打算将vim作为python开发工具,下面就配置vim,以让它成为python开发的利器,增强我们的开发体验!废话少说, ...

  7. 配置基于Vim的Python开发环境

    配置基于Vim的Python开发环境插件 Vundle YouCompleteMe NERDTree Vim-Jinja2-Syntax set nocompatible " be iMpr ...

  8. 转载 - Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)

    出处:http://www.cnblogs.com/ifantastic/p/3185665.html Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LT ...

  9. Vim配置及说明——IDE编程环境

    Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...

  10. Vim配置及使用技巧

    要说Linux下比较好用的文本编辑器,我推荐vim(当然很多人都用emacs,可我没用过),用vim也有一年左右,有些心得体会想与诸位分享.在我的学习过程中,借鉴了不少优秀的博客,其中有csdn大神n ...

随机推荐

  1. 什么?你竟然还没有用这几个chrome插件?

    前言 其实18年之前写过一篇关于chrome插件的文章,里面安利了4个chrome插件.鉴于这已经是9102年了,之前觉得好用的chrome插件跟新了解到的比起来,还是差了那么点味道.所以决定再更新一 ...

  2. C语言实现顺序栈的初始化&进栈&出栈&读取栈顶元素

    /*顺序表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define Stack_Size 50 //设栈中元素个数为50 ...

  3. [十四]基础类型之StringBuffer 与 StringBuilder对比

    StringBuilder 和 StringBuffer是高度类似的两个类 StringBuilder是StringBuffer的版本改写,下面从几个方面简单的对比下他们的区别 类继承关系 上文中,我 ...

  4. 痞子衡嵌入式:第一本Git命令教程(4)- 转移(add/rm/mv)

    今天是Git系列课程第四课,上一课我们在Git空间里做了一些文件改动并且知道了如何利用Git查看这些变动,今天痞子衡要讲的是将这些变动提交到Git本地仓库前的准备工作. Git仓库目录下的文件改动操作 ...

  5. [UOJ310] 黎明前的巧克力

    Sol 某比赛搬了这题. 首先选择两个不交非空子集且异或和为0的方案数,等价于选择一个异或和为0的集合,并把它分成两部分的方案数. 这显然可以DP来算,设 \(f[i][j]\) 表示前\(i\)个数 ...

  6. 常用的Arrays类和二维数组以及二分法的介绍

    ---恢复内容开始--- 1.Array类 Array中包含了许多数组的常用操作,较为常见的有: (1)快速输出 import java.util.Arrays; public class Test{ ...

  7. ecstore 安装后提示require function does not exist in....

    解决: 安装好后,修改config.php里的TMP_DIR,指向网站目录下的data目录(用绝对路径) // define('TMP_DIR', '/data/www/data/tmp/');  先 ...

  8. Linux设备驱动之IIO子系统——IIO框架数据读取

    IIO DATA ACCESS IIO数据获取 只有两种方法可以使用IIO框架访问数据; 通过sysf通道进行一次性捕获,或通过IIO字符设备进行连续模式(触发缓冲). One-shot captur ...

  9. 2019-02-10 扩展Python控制台实现中文反馈信息

    "中文编程"知乎专栏原文地址 参考了周蟒的实现, 运行效果如下: $ python3 解释器.py Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 ...

  10. webpack 4 简单介绍

    webpack是什么? webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler). 为什么要使用webpack呢? 随着web技术的发展,前端开发不再仅仅是 ...