复制内容到剪贴板
+
可以把内容复制到剪贴板寄存器,就能在其他应用中贴。- :reg [register_name] 查看指定寄存器的内容
"+yy // 复制当前行到剪切板
"+p // 将剪切板内容粘贴到光标后面
"ayy // 复制当前行到寄存器 a
"ap // 将寄存器 a 中的内容粘贴到光标后面
Vim 有 12 个粘贴板依次编号为:0、1、2、…、9、a、"、+,其中 + 号为系统粘贴板,” 为临时粘贴板。系统剪切板中的内容可在其他程序中使用。上面的复制指令都可以配合剪切板进行操作。“nyw 复制当前单词到 n 号剪切板(双引号开始) “np 粘贴 n 号剪切板内容到当前位置后 “+Y 复制当前行到系统剪切板”+nY 复制当前行往下 n 行到系统剪切板”+p 粘贴系统剪切板内容到当前位置后
标记,mark 一下
mc
标记一个位置c
,当在本页其他地方完成代码之后,有时因为不是用的 vim 的G或g
位移操作,所以两个点号不一定能回来,但是如果在离开前就 mark 了它,`c 一下就能会到 c 标记的地方,这里用其他字母也行,只要自己能记住,我从别的地方学的是 e - end,c - current,s - start,比如代码开头的 import 内容或者常量不对调整,则标记一个 s,当前的代码工作地方标记为 c,这样可以在开头和当前不断跳转。
replace
- Search and replace
:%s/foo/bar/g
, Find each occurrence of ‘foo’ (in all lines), and replace it with ‘bar’.
插件
Youcompleteme
通过 vundle 添加插件
call vundle#begin() . . . Plugin ‘Valloric/YouCompleteMe ’ . . . call vundle#end()
vim 里面通过
:PluginInstall
安装
如果不是自己想要的依赖,可以自己编译,最近在看 c,所以就试着配置了一下:
cd ~/.vim/bundle/YouCompleteMe/
./install.py --clang-completer --go-completer
,包含 c family- 这里可能会报 python 路径不对,注意.zshrc 或.bashrc 的路径配置,会影响,最好用系统自带的,是含有 lib 动态文件的
- .vimrc 配置
- let g:ycm_server_python_interpreter=‘python’ # 不指定绝对路径,用了 virtualenv 插件,可以自己识别当前的 venv python(Plugin ‘plytophogy/vim-virtualenv’)
- let g:ycm_global_ycm_extra_conf=’~/.vim/.ycm_extra_conf.py’,ycm 的配置文件,默认是没有的,
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/
mac 下的 vim配置
VIM 配置
说明
vim 神器不必多说,关于它的讨论以及最好编辑器的争论从未停息. 争议的东西就不多说了,主要是自己使用vim的一些个设置和配置,基本原则是尽量少用插件安装,安装插件具有简单复制性,online特性。(ps:以后写个一键安装脚本,原谅我是一个比较懒的coder) 上面说了那么多是不是四个字母就可以了 –> kiss
基础配置
基础平台:MacBook Air ,出去装逼的时候用,电池牛逼,不插电coding也有安全感,原生shell支持,全屏terminal ,再开个markdown,逼哥咱逼哥。
mac 自带的是vi,需要安装vim,对Gvim和MACvim都无爱,homebrew 安装so ez:brew install vim
配置文件在用户目录下~/.vimrc
,如果没有,就自己创建一个。
" 显示行号
set number
" 显示标尺
set ruler
" 历史纪录
set history=1000
" 输入的命令显示出来,看的清楚些
set showcmd
" 状态行显示的内容
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
" 启动显示状态行1,总是显示状态行2
set laststatus=2
" 语法高亮显示
syntax on
set fileencodings=utf-8,gb2312,gbk,cp936,latin-1
set fileencoding=utf-8
set termencoding=utf-8
set fileformat=unix
set encoding=utf-8
" 配色方案
colorscheme desert
" 指定配色方案是256色
set t_Co=256
set wildmenu
" 去掉有关vi一致性模式,避免以前版本的一些bug和局限,解决backspace不能使用的问题
set nocompatible
set backspace=indent,eol,start
set backspace=2
" 启用自动对齐功能,把上一行的对齐格式应用到下一行
set autoindent
" 依据上面的格式,智能的选择对齐方式,对于类似C语言编写很有用处
set smartindent
" vim禁用自动备份
set nobackup
set nowritebackup
set noswapfile
" 用空格代替tab
set expandtab
" 设置显示制表符的空格字符个数,改进tab缩进值,默认为8,现改为4
set tabstop=4
" 统一缩进为4,方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
set softtabstop=4
" 设定自动缩进为4个字符,程序中自动缩进所使用的空白长度
set shiftwidth=4
" 设置帮助文件为中文(需要安装vimcdoc文档)
set helplang=cn
" 显示匹配的括号
set showmatch
" 文件缩进及tab个数
au FileType html,python,vim,javascript setl shiftwidth=4
au FileType html,python,vim,javascript setl tabstop=4
au FileType java,php setl shiftwidth=4
au FileType java,php setl tabstop=4
" 高亮搜索的字符串
set hlsearch
" 检测文件的类型
filetype on
filetype plugin on
filetype indent on
" C风格缩进
set cindent
set completeopt=longest,menu
" 功能设置
" 去掉输入错误提示声音
set noeb
" 自动保存
set autowrite
" 突出显示当前行
set cursorline
" 突出显示当前列
set cursorcolumn
"设置光标样式为竖线vertical bar
" Change cursor shape between insert and normal mode in iTerm2.app
"if $TERM_PROGRAM =~ "iTerm"
let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
"endif
" 共享剪贴板
set clipboard+=unnamed
" 文件被改动时自动载入
set autoread
" 顶部底部保持3行距离
set scrolloff=3
插件安装和配置
首先安装插件管家 Vundle:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
.vimrc 中添加配置使管家上任:
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin '你的插件'
call vundle#end()
filetype plugin indent on
使用vundle安装插件:
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" Plugin 'tpope/vim-surround'
" Plugin 'scrooloose/nerdtree'
Plugin 'Lokaltog/vim-powerline'
Plugin 'valloric/youcompleteme'
Plugin 'yggdroot/indentline'
Plugin 'jiangmiao/auto-pairs'
插件相关配置:
"""""""""""plugin configuration"""""""""""""""""""
"NERDTree
"F2开启和关闭树"
"map <F2> :NERDTreeToggle<CR>
"let NERDTreeChDirMode=1
""显示书签"
"let NERDTreeShowBookmarks=1
"设置忽略文件类型"
"let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
""窗口大小"
"let NERDTreeWinSize=25
"indentLine
"缩进指示线"
let g:indentLine_char='|'
let g:indentLine_enabled=1
OK ,everything’s ready
打开vim哈皮的coding吧。