复制内容到剪贴板

  • +可以把内容复制到剪贴板寄存器,就能在其他应用中贴。
  • :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吧。