超级强大的 vim 配置(vimplus)

 

From : http://www.cnblogs.com/highway-9/p/5984285.html
From : http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html
From : http://www.cnblogs.com/youxia/p/linux002.html
From : http://blog.csdn.net/namecyf/article/details/7787479

 

最近在重新配置Vim,也在GitHub上找了三个star和fork数目很高的方案,在这里分享给大家:

  • https://github.com/amix/vimrc - star 3,482 ; Fork 1,203
  • https://github.com/humiaozuzu/dot-vimrc - star 781 ; Fork 304
  • https://github.com/spf13/spf13-vim - star 5,287 ; Fork 1,593

 

 

 

前言

 

vim 和 emacs 是 linux 环境下的文本编辑利器,关于 vim 和 emacs 谁更优秀的话题从来没有断过,我在这里就不再评判了,vim 是 linux 下的默认编辑器,学好了 vim 将会一生受用,我之前学 vim 是在网上找的一些资料,读博客之类的,使用了几年vim 始终感觉没有什么大的进步,后来在 vim 官网看到 vim 书籍推荐,其中一本就是《vim实用技巧》,后来果断在京东上买了一本,除了宏相关的没怎么看以外,其他的都看了,加上自己的实际操作,感觉 vim 技术又上了一个层次,《vim实用技巧》是教会 vimer 怎么使用 vim,使用 vim 写代码时,给 vim 装上一些插件,将会如虎添翼,后来我在网上找一些插件来安装,或者在 github 上搜索别人的 vimrc,看别人装了什么插件,自己选择性的安装了一些,使用一段时间后感觉使用 vim 编辑代码就是一件非常愉快的事情,再加上我最近买的忍者二代机械键盘那简直写代码很带感啊,我最开始自己家的电脑上给vim装了很多插件,后来在公司又要重新搭建vim开发环境,感觉有点麻烦,后来又想有没有什么一键安装、部署之类的小程序,就可以傻瓜式的把开发环境给搭建起来不是很爽吗,vimplus就运运而生了,如果喜欢的朋友请不要吝啬,给个star,废话不多说,直接上安装步骤(个人博客也发表了《超级强大的vim配置(vimplus)》)。

超级强大的vim配置(vimplus)--续集:https://www.cnblogs.com/highway-9/p/5984285.html

 

之前,为了解决一个语法加亮的问题更改了 vimrc,之后,突然发现鼠标可以使用了,点到那里光标就定位到那里,但是随后发现 ctrl+shift+c 不能用了,鼠标右键复制选项也是灰的。到网上,搜了一下,发现是 set mouse=a 这句话的问题,这个是用来开启鼠标功能的。a表示所有模式

vi 的三种模式:

  1. 命令模式
  2. 插入模式
  3. 可视模式

鼠标可以启动于各种模式中(The mouse can be enabled for different modes):

  1. n Normal mode
  2. v Visual mode
  3. i Insert mode
  4. c Command-line mode
  5. h all previous modes when editing a help file
  6. a all previous modes
  7. r for |hit-enter| and |more-prompt| prompt

Normally you would enable the mouse in all four modes with:
:set mouse=a
When the mouse is not enabled, the GUI will still use the mouse for
modeless selection. This doesn't move the text cursor.

所以配置文件中的 set mouse=a 启动了所有模式,这样就屏蔽了鼠标右健功能。

这里我设置为 set mouse=v 在可视模式下使用鼠标,然后搞定。但是,这样,其他模式就无法使用鼠标定位了,有点不爽。莫非鱼和熊掌不能兼得??又到网上找了下,发现确实这样,不过却另有所获:无须更改 set mouse=a ,用鼠标选中,按y键复制,然后点击要粘贴的地方使用鼠标中键粘贴!!!支持夸文件粘贴,比使用命令方便多了

 

 

vimplus

 

vimplus 是 vim 的超级配置安装程序 

github地址:https://github.com/chxuan/vimplus.git,欢迎star和fork。

接触 vim 到现在也有几年了,但是之前用 vim 都是在网上找别人配置好了的 vim,但是别人配置的始终都不能够满足自己的需求(自己需要有强大的 C/C++ 代码提示补全功能、头文件/源文件切换、静态代码分析等功能),所以最近自己有时间,自己归纳了一些vim的插件,然后做成一键安装程序,供有相同需求的vimer们参考。

 

安装配置(Ubuntu、Centos)

git clone https://github.com/chxuan/vimplus.git
cd ./vimplus
sudo ./install.sh

现在 vimplus 支持 ubuntu14.04 之后的所有 ubuntu 64 位系列以及 centos7 64 位,运行 install.sh 脚本,你就可以一边喝咖啡,一遍看着屏幕刷刷刷的打印就安装部署好了开发环境了,整个过程大约持续40分钟,其中下载编译 ycm 耗费了大半时间,我有下载好了的 YouCompleteMe.tar.gz,省得在github上去下载,很慢的,你懂的,若想要手动安装ycm,需要修改vimplus目录下的.vimrc文件。

Plugin 'Valloric/MatchTagAlways'
#Plugin 'Valloric/YouCompleteMe'
Plugin 'docunext/closetag.vim'

将 ycm 插件那行注释掉,不然还会再去下载 ycm,ycm 可以最后等 vimplus 执行完成后再安装~~,接下来需要手动编译 ycm。

cd ~
mv YouCompleteMe.tar.gz ~/.vim/bundle/
cd ~/.vim/bundle/
tar -xvf YouCompleteMe.tar.gz
cd YouCompleteMe
./install.py --clang-completer

vimplus 将自动安装一些软件,比如说。

  • vim
  • g++
  • ctags
  • cmake
  • python2
  • python3

 

插件列表

插件说明
cpp-mode提供生成函数实现、函数声明/实现跳转、.h .cpp切换等功能(I'm author😄)
vim-edit方便的文本编辑插件(I'm author😄)
change-colorscheme随心所欲切换主题(I'm author😄)
prepare-code新建文件时,生成预定义代码片段(I'm author😄)
vim-buffervim缓存操作(I'm author😄)
vimplus-startifyvimplus开始页面(修改自mhinz/vim-startify)
tagbar使用majutsushi/tagbar的v2.3版本,taglist的替代品,显示类/方法/变量
vim-plug比Vundle下载更快的插件管理软件
YouCompleteMe史上最强大的基于语义的自动补全插件,支持C/C++、C#、Python、PHP等语言
NerdTree代码资源管理器
vim-nerdtree-syntax-highlightNerdTree文件类型高亮
nerdtree-git-pluginNerdTree显示git状态
vim-devicons显示文件类型图标
Airline可以取代powerline的状态栏美化插件
auto-pairs自动补全引号、圆括号、花括号等
LeaderF比ctrlp更强大的文件的模糊搜索工具
ack强大的文本搜索工具
vim-surround自动增加、替换配对符的插件
vim-commentary快速注释代码插件
vim-repeat重复上一次操作
vim-endwiseif/end/endif/endfunction补全
tabular代码、注释、表格对齐
vim-easymotion强大的光标快速移动工具,强大到颠覆你的插件观
incsearch.vim模糊字符搜索插件
markdown-previewmarkdown实时预览
vim-fugitive集成Git
gv显示git提交记录
vim-slash优化搜索,移动光标后清除高亮
echodoc补全函数时在命令栏显示函数签名
vim-smooth-scroll让翻页更顺畅
clever-f.vim强化f和F键
github-complete.vimEmoji🐶补全
vimcdocvim中文文档

安装的插件我也部分列出来。

  • Vundle
  • YouCompleteMe
  • NerdTree
  • nerdcommenter
  • Airline
  • auto-pairs
  • DoxygenToolkit
  • ctrlp
  • tagbar
  • vim-devicons
  • vim-surround
  • vim-commentary
  • vim-repeat
  • vim-endwise
  • tabular
  • vim-dirdiff
  • vim-coloresque
  • incsearch.vim
  • vim-startify
  • change-colorscheme
  • etc...

 

配置 YouCompleteMe

到这一步,安装已经完成,你会发现~目录有两个文件,一个是vim的配置文件.vimrc,一个是 YouCompleteMe 的配置文件[.ycm_extra_conf.py][25],一般来说建立一个main.cpp来写C、C++程序来说是没有问题的,都会有语法补全,当你需要写一些项目并涉及到第三方库时,就需要更改[.ycm_extra_conf.py][26]了,具体步骤如下。

  1. 将 .ycm_extra_conf.py 拷贝的项目的根目录。
  2. 更改 .ycm_extra_conf.py 里面的 flags 变量,添加三方库路径和工程子目录路径。

 

使用 vim-devicons

桌面版linux使用vim-devicons插件会出现乱码,需要设置终端字体为Droid Sans Mono for Powerline Nerd Font Complete,使用 xshell 等工具连接服务器 linux 的用户就没有必要使用 vim-devicons 了,可以在插件目录将 vim-devicons 目录删除,不然会导致 NerdTree 的缩进有问题。

 

快捷键

vim的插件需要设置好了快捷键才会发挥它的威力,有些插件的快捷键可以查看各自官网,有些快捷键我自己改过的,下面罗列部分插件的快捷键。

  • 显示目录树 <F3>
  • 显示函数、变量、宏定义等 <F4>
  • 显示静态代码分析结果 <F5>
  • .h .cpp 文件快速切换 <F2>
  • 转到申明 <, + u>
  • 转到定义 <, + i>
  • 打开包含文件 <, + o>
  • Buffer切换 <Ctrl + P/Ctrl + N>
  • 光标位置切换 <Ctrl + O/Ctrl + I>
  • 模糊搜索文件 <Ctrl + f>
  • Surround <ys{motion or text-object}{char}/cs{orig_char}{dest_char}/ds{char}>
  • 注释 <gcc/gcap/gc/,ca/,cA>
  • DirDiff :DirDiff <dir1> <dir2>
  • 重复 .
  • 改变主题 <F10/F9>

下面这幅图是借用Valloric/YouCompleteMe来展示强大的C++补全功能 

文件搜索

ctrlp 提供文件搜索,支持模糊查询。

 

vim-airline

vim-airline提供漂亮的状态栏支持。

vim-surround

 

vim-commentary

 

auto-pairs

 

incsearch.vim

 

vim-devicons

 

 

vim-coloresque

 

 

vim-dirdiff

 

 

vim-startify

 

 

Change the colorscheme

 

 

安装完成后

 

运行 setup.sh 脚本程序一键安装完成后,HOME 目录将会存在.ycm_extra_conf.py,该文件就是YCM实现C++等语言语法补全功能的配置文件,一般我会在HOME目录放一个,然后每一个项目拷贝一个.ycm_extra_conf.py,更改.ycm_extra_conf.py文件里面的 flags 变量的值即可实现相关include文件的语法补全功能。

 

 

注意事项

  • 1. 如果网络条件不好可能安装失败,基本上是 Valloric/YouCompleteMe 安装失败,安装失败后需要将 ~/.vim/bundle文件夹下的YouCompleteMe目录删除,然后重新执行 setup.sh 即可,重新安装时,程序将自动安装安装失败的插件。
  • 2. 在 ubuntu16.04 LTS 下安装可能会失败(Valloric/YouCompleteMe安装失败),因为 vim 默认支持 python3 进行插件编译,安装失败后,手动进入~/.vim/bundle/YouCompleteMe,然后运行 python3 ./install.py --clang-completer 即可。

 

 

 

强大的 vim 配置文件,让编程更随意

 

花了很长时间整理的,感觉用起来很方便,共享一下。

我的 vim 配置主要有以下优点:

  • 1. 按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试
  • 2. 自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改
  • 3. 映射“Ctrl + A”为全选并复制快捷键,方便复制代码
  • 4. 按“F2”可以直接消除代码中的空行
  • 5. “F3”可列出当前目录文件,打开树状文件目录
  • 6. 支持鼠标选择、方向键移动
  • 7. 代码高亮,自动缩进,显示行号,显示状态行
  • 8. 按“Ctrl + P”可自动补全
  • 9. []、{}、()、""、' '等都自动补全
  • 10. 其他功能读者可以研究以下文件

vim 本来就是很强大,很方便的编辑器,加上我的代码后肯定会如虎添翼,或许读者使用其他编程语言,
可以根据自己的需要进行修改,配置文件里面已经加上注释。

读者感兴趣的话直接复制下面的代码到文本文件,然后把文件改名为“ .vimrc” (不要忘记前面的“.”),然后把文件放到用户文件夹的根目录下面即可。重新打开vim即可看到效果。

 

为方便管理,源码托管到了github,后期增加了好多新功能,

具体详见:https://github.com/ma6174/vim

这是在github上的vim配置的截图:

 

下面是精简的,没有插件的vim配置文件,保存到自己的.vimrc文件就能使用。

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 显示相关  
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  
"winpos 5 5          " 设定窗口位置  
"set lines=40 columns=155    " 设定窗口大小  
"set nu              " 显示行号  
set go=             " 不要图形按钮  
"color asmanian2     " 设置背景主题  
set guifont=Courier_New:h10:cANSI   " 设置字体  
"syntax on           " 语法高亮  
autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
autocmd InsertEnter * se cul    " 用浅色高亮当前行  
"set ruler           " 显示标尺  
set showcmd         " 输入的命令显示出来,看的清楚些  
"set cmdheight=1     " 命令行(在状态行下)的高度,设置为1  
"set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)  
"set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离  
set novisualbell    " 不要闪烁(不明白)  
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容  
set laststatus=1    " 启动显示状态行(1),总是显示状态行(2)  
set foldenable      " 允许折叠  
set foldmethod=manual   " 手动折叠  
"set background=dark "背景使用黑色 
set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  " 显示中文帮助
if version >= 603set helplang=cnset encoding=utf-8
endif" 设置配色方案
"colorscheme murphy"字体 
"if (has("gui_running")) 
"   set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 
"endif set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新文件标题""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头 
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 
""定义函数SetTitle,自动插入文件头 
func SetTitle() "如果文件类型为.sh文件 if &filetype == 'sh' call setline(1,"\#########################################################################") call append(line("."), "\# File Name: ".expand("%")) call append(line(".")+1, "\# Author: ma6174") call append(line(".")+2, "\# mail: ma6174@163.com") call append(line(".")+3, "\# Created Time: ".strftime("%c")) call append(line(".")+4, "\#########################################################################") call append(line(".")+5, "\#!/bin/bash") call append(line(".")+6, "") else call setline(1, "/*************************************************************************") call append(line("."), "    > File Name: ".expand("%")) call append(line(".")+1, "    > Author: ma6174") call append(line(".")+2, "    > Mail: ma6174@163.com ") call append(line(".")+3, "    > Created Time: ".strftime("%c")) call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "")endifif &filetype == 'cpp'call append(line(".")+6, "#include<iostream>")call append(line(".")+7, "using namespace std;")call append(line(".")+8, "")endifif &filetype == 'c'call append(line(".")+6, "#include<stdio.h>")call append(line(".")+7, "")endif"新建文件后,自动定位到文件末尾autocmd BufNewFile * normal G
endfunc """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>
" 映射全选+复制 ctrl+a
map <C-A> ggVGY
map! <C-A> <Esc>ggVGY
map <F12> gg=G
" 选中状态下 Ctrl+c 复制
vmap <C-c> "+y"去空行  
nnoremap <F2> :g/^\s*$/d<CR> "比较文件  
nnoremap <C-F2> :vert diffsplit "新建标签  
map <M-F2> :tabnew<CR>  "列出当前目录文件  
map <F3> :tabnew .<CR>  "打开树状文件目录  
map <C-F3> \be  
"C,C++ 按F5编译运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()exec "w"if &filetype == 'c'exec "!g++ % -o %<"exec "! ./%<"elseif &filetype == 'cpp'exec "!g++ % -o %<"exec "! ./%<"elseif &filetype == 'java' exec "!javac %" exec "!java %<"elseif &filetype == 'sh':!./%endif
endfunc"C,C++的调试
map <F8> :call Rungdb()<CR>
func! Rungdb()exec "w"exec "!g++ % -g -o %<"exec "!gdb ./%<"
endfunc""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""实用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 设置当文件被改动时自动载入
set autoread
" quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>"代码补全 
set completeopt=preview,menu "允许插件  
filetype plugin on"共享剪贴板  
set clipboard+=unnamed "从不备份  
set nobackup"make 运行
:set makeprg=g++\ -Wall\ \ %"自动保存set autowrite
set ruler                   " 打开状态栏标尺
set cursorline              " 突出显示当前行
set magic                   " 设置魔术
set guioptions-=T           " 隐藏工具栏
set guioptions-=m           " 隐藏菜单栏
"set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\" 设置在状态行显示的信息
set foldcolumn=0
set foldmethod=indent 
set foldlevel=3 
set foldenable              " 开始折叠" 不要使用vi的键盘模式,而是vim自己的
set nocompatible" 语法高亮
set syntax=on" 去掉输入错误的提示声音
set noeb" 在处理未保存或只读文件的时候,弹出确认
set confirm" 自动缩进
set autoindent
set cindent" Tab键的宽度
set tabstop=4" 统一缩进为4
set softtabstop=4
set shiftwidth=4" 不要用空格代替制表符
set noexpandtab" 在行和段开始处使用制表符
set smarttab" 显示行号
set number" 历史记录数
set history=1000"禁止生成临时文件
set nobackup
set noswapfile"搜索忽略大小写
set ignorecase"搜索逐字符高亮
set hlsearch
set incsearch"行内替换
set gdefault"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936"语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn" 我的状态行显示的内容(包括文件类型和解码)
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]" 总是显示状态行
set laststatus=2" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2" 侦测文件类型
filetype on" 载入文件类型插件
filetype plugin on" 为特定文件类型载入相关缩进文件
filetype indent on" 保存全局变量
set viminfo+=!" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-" 字符间插入的像素行数目
set linespace=0" 增强模式中的命令行自动完成操作
set wildmenu" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\" 高亮显示匹配的括号
set showmatch" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3" 为C程序提供自动缩进
set smartindent" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile *  setfiletype txt"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)if getline('.')[col('.') - 1] == a:charreturn "\<Right>"elsereturn a:charendif
endfunction
filetype plugin indent on "打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定  
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let Tlist_Sort_Type = "name"    " 按照名称排序  
let Tlist_Use_Right_Window = 1  " 在右侧显示窗口  
let Tlist_Compart_Format = 1    " 压缩方式  
let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer  
let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags  
let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树  
autocmd FileType java set tags+=D:\tools\java\tags  
"autocmd FileType h,cpp,cc,c set tags+=D:\tools\cpp\tags  
"let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的"设置tags  
set tags=tags  
"set autochdir """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"其他东东
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""默认打开Taglist 
let Tlist_Auto_Open=1 """""""""""""""""""""""""""""" 
" Tag list (ctags) 
"""""""""""""""""""""""""""""""" 
let Tlist_Ctags_Cmd = '/usr/bin/ctags' 
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim 
let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口" minibufexpl插件的一般设置
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1

 

 

vim 配置插件的安装管理(超级详细)

 

查看:https://blog.csdn.net/u013630349/article/details/74279038

 

 

vim 简单 配置

 

在命令行下,输入命令:sudo vim /etc/vim/vimrc。会影响所有用户
在命令行下,输入命令:sudo ~/vimrc。只影响当前用户

syntax on          "语法高亮
set nu             "在左侧行号
set tabstop        "tab 长度设置为 4
set nobackup     "覆盖文件时不备份
set cursorline     "突出显示当前行
set ruler            "在右下角显示光标位置的状态行
set autoindent        "自动缩进

 

 

vim 使用

 

配置的基本

 

首先, 我们建立目录存放我们的主题

 mkdir -p  ~/.vim/colors

这个目录就是给我们存放主题用的, 我们用什么主题呢? 这里我们采用 molokai 这个主题, 当然如果读者愿意用别的主题,
也是可以的, 下一个就行.

http://www.vim.org/scripts/script.php?script_id=2340下载molokai主题, 拷贝到~/.vim/colors目录下, 创建.vimrc文件.

touch ~/.vimrc

将下面的内容拷贝到.vimrc中.

set modelines=0"设置更好的删除
set backspace=2syntax on "语法高亮"用浅色高亮当前行
autocmd InsertLeave * se nocul
autocmd InsertEnter * se culset smartindent "智能对齐set autoindent "自动对齐set confirm "在处理未保存或只读文件的时候,弹出确认框set tabstop=4 "tab键的宽度
set softtabstop=4
set shiftwidth=4 "统一缩进为4
set expandtab "不要用空格替代制表符set number "显示行号
set history=50  "历史纪录数
set hlsearch
set incsearch "搜素高亮,搜索逐渐高亮set gdefault "行内替换
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 "编码设置colorscheme molokaiset guifont=Menlo:h16:cANSI "设置字体
set langmenu=zn_CN.UTF-8
set helplang=cn  "语言设置set ruler "在编辑过程中,在右下角显示光标位置的状态行set laststatus=1  "总是显示状态行set showcmd "在状态行显示目前所执行的命令,未完成的指令片段也会显示出来set scrolloff=3 "光标移动到buffer的顶部和底部时保持3行的距离
set showmatch "高亮显示对应的括号
set matchtime=5 "对应括号高亮时间(单位是十分之一秒)set autowrite "在切换buffer时自动保存当前文件set wildmenu  "增强模式中的命令行自动完成操作set linespace=2 "字符间插入的像素行数目
set whichwrap=b,s,<,>,[,] "开启normal 或visual模式下的backspace键空格键,左右方向键,insert或replace模式下的左方向键,右方向键的跳行功能filetype plugin indent on "分为三部分命令:file on,file plugin on,file indent on 分别是自动识别文件类型, 用用文件类型脚本,使用缩进定义文件set foldenable  "允许折叠
set cursorline "突出显示当前行
set magic  "设置魔术?神马东东
set ignorecase "搜索忽略大小写
filetype on "打开文件类型检测功能
set background=dark
set t_Co=256   "256色
set mouse=a  "允许鼠标

这时候, 我们可以发现我们的 vim 变成了:

 

插件安装

 

这一部分比上面的样式重要的多,这里主要是讲插件的使用,而这些插件大大增加了vim 的性能。

 

1. vbundle 管理插件 的 插件

我们的插件如果一个一个安装的话, 这可能会搞死你, 因此我们希望有一个能够自动安装和管理插件的插件.
这就是我们要说的 vbundle, 可参考:.

安装非常简单:

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

然后我们来看看配置, 也非常简单.

set nocompatible              " be iMproved, 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
Plugin 'VundleVim/Vundle.vim'" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

vimrc 中把上面的代贴在 最前面 即可。需要添加插件的话,只要在 begin 和 end 之间加入即可

 

2. nerdtree 插件

在 begin 和 end之 间加入

Plugin 'scrooloose/nerdtree'

输入命令

:PluginInstall

配置 nerdtree:

let NERDTreeQuitOnOpen=1 "打开文件时关闭树
let NERDTreeShowBookmarks=1 "显示书签

配置快捷键:

let mapleader = ","
map <leader>ne :NERDTreeToggle<CR>
map <leader>tl :TlistToggle<cr>
nnoremap <leader>ma :set mouse=a<cr>
nnoremap <leader>mu :set mouse=<cr>

保存vimrc,输入,ne, 我们看看:

似乎有那么点意思!

 

3. tagbar 插件

安装方式:

 Plugin 'majutsushi/tagbar' 

设置键:

nmap <leader>tb :TagbarToggle<CR>

似乎已经越来越接近我们想要的了.

 

4. autopair插件

这个插件就是给括号自动配对的.

Plugin 'jiangmiao/auto-pairs'

 

5. minibuffer 插件

安装插件:

 Plugin 'minibufexpl.vim'

配置插件

let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 

配置快捷键:

nmap <leader>mmbe :MiniBufExplorer<CR>
nmap <leader>mmbc :CMiniBufExplorer<CR>
nmap <leader>mmbu :UMiniBufExplorer<CR>
nmap <leader>mmbt :TMiniBufExplorer<CR>

效果如下

 

6. taglist 插件

功能类似于 tagbar。安装:

Plugin 'taglist.vim' 

配置:

let Tlist_Use_Right_Window=1 "taglist 显示在右侧 
let Tlist_Exit_OnlyWindow=1 "taglist 只剩下一个窗口时,自动关闭
let Tlist_File_Fold_Auto_Close=1

快捷键:
map tl :TlistToggle
nnoremap ev :vsplit $MYVIMRC
nnoremap sv :source $MYVIMRC

 

7. nerd comment 插件

这个插件是用来自动添加注释的插件。安装:

Plugin 'scrooloose/nerdcommenter'

8. 代码折叠

配置:

"使用语法高亮定义代码折叠
set foldmethod=syntax
"打开文件是默认不折叠代码
set foldlevelstart=99

zc 折叠
zC 对所在范围内所有嵌套的折叠点进行折叠
zo 展开折叠
zO 对所在范围内所有嵌套的折叠点展开
[z 到当前打开的折叠的开始处。]z 到当前打开的折叠的末尾处。
zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。

 

9. markdown 插件安装

安装:

Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'

配置:

let g:vim_markdown_math = 1
let g:vim_markdown_frontmatter = 1
let g:vim_markdown_toml_frontmatter = 1
let g:vim_markdown_json_frontmatter = 1

效果

 

10. youcompleteme 插件

YouCompleteMe:一个随键而全的、支持模糊搜索的、高速补全的插件。YCM 由 google 公司搜索项目组的软件工程师 Strahinja Val Markovic 所开发,YCM 后端调用 libclang (以获取AST,当然还有其他语言的语义分析库)、前端由 C++ 开发(以提升补全效 率)、外层由 python 封装(以成为 vim 插件),这是至今为止最强大也是最难安装的插件之一,有很多人都砸在这个插件上了,我们来看看如何安装这个插件。

安装插件:

 Plugin 'Valloric/YouCompleteMe'

打开vim,输入:PluginInstall, vim 会自动去从 git 上 clone 出项目,把这个项目安装到项目目录上。

安装完毕后。我们进入到插件目录

cd ~/.vim/bundle/YouCompleteMe/
./install.py --clang-completer

又是需要漫长的等待,等他安装好,在 vimrc 中配置 YouCompleteMe:

let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']
let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示
let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项
let g:ycm_cache_omnifunc=0  " 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_seed_identifiers_with_syntax=1    " 语法关键字补全
" 在注释输入中也能补全
let g:ycm_complete_in_comments = 1
" 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
"注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
nnoremap <leader>lo :lopen<CR> "open locationlist                                                                                                                      
nnoremap <leader>lc :lclose<CR>   "close locationlist
inoremap <leader><leader> <C-x><C-o>"
inoremap <leader><leader> <C-x><C-o>
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>

我们开看看效果:

完整配置文件如下:

set nocompatible              " be iMproved, 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
Plugin 'VundleVim/Vundle.vim'" nerdtree插件
Plugin 'scrooloose/nerdtree'" tagbar
Plugin 'majutsushi/tagbar'" auto pair
Plugin 'jiangmiao/auto-pairs'" mini buffer
Plugin 'minibufexpl.vim'" tag list
Plugin 'taglist.vim'" nerd commit
Plugin 'scrooloose/nerdcommenter'" PHP mannual
Plugin 'alvan/vim-php-manual'" snippets mate
Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'tomtom/tlib_vim'
Plugin 'garbas/vim-snipmate'
Plugin 'honza/vim-snippets'" markdown插件
Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'" you complete me插件
Plugin 'Valloric/YouCompleteMe'" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
" filetype plugin on"  Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just
" :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this lineset modelines=0"设置更好的删除
set backspace=2syntax on "语法高亮"用浅色高亮当前行
autocmd InsertLeave * se nocul
autocmd InsertEnter * se culset smartindent "智能对齐set autoindent "自动对齐set confirm "在处理未保存或只读文件的时候,弹出确认框set tabstop=4 "tab键的宽度
set softtabstop=4
set shiftwidth=4 "统一缩进为4
set expandtab "不要用空格替代制表符set number "显示行号
set history=50  "历史纪录数
set hlsearch
set incsearch "搜素高亮,搜索逐渐高亮set gdefault "行内替换
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 "编码设置colorscheme molokaiset guifont=Menlo:h16:cANSI "设置字体
set langmenu=zn_CN.UTF-8
set helplang=cn  "语言设置set ruler "在编辑过程中,在右下角显示光标位置的状态行set laststatus=1  "总是显示状态行set showcmd "在状态行显示目前所执行的命令,未完成的指令片段也会显示出来set scrolloff=3 "光标移动到buffer的顶部和底部时保持3行的距离
set showmatch "高亮显示对应的括号
set matchtime=5 "对应括号高亮时间(单位是十分之一秒)set wildmenu  "增强模式中的命令行自动完成操作set linespace=2 "字符间插入的像素行数目
set whichwrap=b,s,<,>,[,] "开启normal 或visual模式下的backspace键空格键,左右方向键,insertreplace模式下的左方向键,右方向键的跳行功能filetype plugin indent on "分为三部分命令:file on,file plugin on,file indent on 分别是自动识别文件类型, 用用文件类型脚本,使用缩进定义文件syntax enable
set foldenable  "允许折叠
set cursorline "突出显示当前行
set magic  "设置魔术?神马东东
set ignorecase "搜索忽略大小写
filetype on "打开文件类型检测功能
set background=dark
set t_Co=256   "256色
set mouse=a  "允许鼠标
"使用语法高亮定义代码折叠
set foldmethod=syntax
""打开文件是默认不折叠代码
set foldlevelstart=99"" nerdtree 配置
let NERDTreeQuitOnOpen=1 "打开文件时关闭树
let NERDTreeShowBookmarks=1 "显示书签" taglist 配置
let Tlist_Use_Right_Window=1 "taglist 显示在右侧 
let Tlist_Exit_OnlyWindow=1 "taglist 只剩下一个窗口时,自动关闭
let Tlist_File_Fold_Auto_Close=1" -- MiniBufferExplorer --   
let g:miniBufExplMapWindowNavVim = 1  " 按下Ctrl+h/j/k/l,可以切换到当前窗口的上下左右窗口  
let g:miniBufExplMapWindowNavArrows = 1  "按下Ctrl+箭头,可以切换到当前窗口的上下左右窗口  
let g:miniBufExplMapCTabSwitchBufs = 1 "启用以下两个功能:Ctrl+tab移到下一个buffer并在当前窗口打开;Ctrl+Shift+tab移到上一个buffer并在当前窗口打开;ubuntu好像不支持  
let g:miniBufExplMapCTabSwitchWindows = 1 "  启用以下两个功能:Ctrl+tab移到下一个窗口;Ctrl+Shift+tab移到上一个窗口;ubuntu好像不支持  
let g:miniBufExplModSelTarget = 1     " 不要在不可编辑内容的窗口(如TagList窗口)中打开选中的buffer" markdown 配置
let g:vim_markdown_math = 1
let g:vim_markdown_frontmatter = 1
let g:vim_markdown_toml_frontmatter = 1
let g:vim_markdown_json_frontmatter = 1" YouCompleteMe配置
let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']
let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示
let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项
let g:ycm_cache_omnifunc=0  " 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_seed_identifiers_with_syntax=1    " 语法关键字补全
" 在注释输入中也能补全
let g:ycm_complete_in_comments = 1
" 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
"注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'let mapleader = ","
map <leader>ne :NERDTreeToggle<CR>
nmap <leader>tb :TagbarToggle<CR>
nmap <leader>mmbe :MiniBufExplorer<CR>
nmap <leader>mmbc :CMiniBufExplorer<CR>
nmap <leader>mmbu :UMiniBufExplorer<CR>
nmap <leader>mmbt :TMiniBufExplorer<CR>
map <leader>tl :TlistToggle<cr>
nnoremap <leader>ev :vsplit $MYVIMRC<cr>
nnoremap <leader>sv :source $MYVIMRC<cr>
nnoremap <leader>ma :set mouse=a<cr>
nnoremap <leader>mu :set mouse=<cr>
nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
nnoremap <leader>lo :lopen<CR> "open locationlist                                                                                                                      
nnoremap <leader>lc :lclose<CR>   "close locationlist
inoremap <leader><leader> <C-x><C-o>"
inoremap <leader><leader> <C-x><C-o>
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>"对搜索的设置
map ft :call Search_Word()<CR>:copen<CR>
function Search_Word()
let w = expand("<cword>") " 在当前光标位置抓词
execute "vimgrep " . w . " %"
endfunction

 

 

总结

 

这就是我们配置好的vim了, 如果你去配置, 我相信你一定会遇到不少问题, 但是我想, 这总是一个很好的经历, 它会培养你的耐心和毅力, 也会变得更加成熟。希望你也去试试哇!

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌将屏蔽一切与加密货币相关的广告 6月正式生效

来源&#xff1a;腾讯证券北京时间3月14日下午消息&#xff0c;据外媒报道&#xff0c;谷歌开始对与加密货币相关的广告的进行打击。谷歌可持续广告业务负责人斯科特-斯宾塞&#xff08;Scott Spencer&#xff09;在接受CNBC采访时称&#xff0c;该公司正在调整与金融服务相关的…

ARM体系结构与汇编指令

可编程器件的特点 • CPU在固定频率的时钟控制下节奏运行。 • CPU可以通过总线读取外部存储设备中的二进制指令集&#xff0c;然后解码执行。 • 这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的&#xff0c;是CPU的设计者&#xff08;ARM公司&#xff09;定义的&a…

微软宣布在机器翻译方面取得突破,中翻英可达人类水平

来源&#xff1a;猎云网一组微软研究团队于本周三宣布&#xff0c;他们已经创造了第一个能够将中文新闻翻译成英文的机器翻译系统&#xff0c;精确度与人类译者一致。该公司表示&#xff0c;它通过来自各种在线报纸的约2000条语句样本对这一系统进行了反复测试&#xff0c;并将…

pla3d打印材料密度_3D打印金属材料模型过程中常见问题

在金属3D打印过程中&#xff0c;可能会出现大量设备操作者试图避免的问题&#xff0c;包括孔隙、残余应力、致密度、翘曲、裂纹及表面光洁度等。下面我们来谈谈这几种常出现的问题。1、表面光洁度在金属3D打印件被使用或放置在展柜之前&#xff0c;它已经经历了大量类似CNC加工…

Java并发编程实战~ThreadLocal

ThreadLocal 的使用方法 static class SafeDateFormat {// 定义 ThreadLocal 变量static final ThreadLocal<DateFormat>tl ThreadLocal.withInitial(()-> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));static DateFormat get(){return tl.get();} }// …

智慧停车介绍、产业链市场全透析

来源&#xff1a;传感器技术最近&#xff0c;Goodwin调查发现&#xff0c;在城市地区&#xff0c;接近30%的交通拥堵源自于司机寻找停车位。据称&#xff0c;到2020年&#xff0c;将会有20亿的汽车在公路上跑着&#xff0c;这就意味着&#xff0c;届时汽车的数量将比目前多了7.…

Python 下载 图片、音乐、视频 和 断点续传

Python3 使用 requests 模块显示下载进度: http://blog.csdn.net/supercooly/article/details/51046561 python编写断点续传下载软件&#xff1a;https://www.leavesongs.com/PYTHON/resume-download-from-break-point-tool-by-python.html Python实现下载界面(带进度条&…

10停止nginx命令 win_Linux下配置Nginx并使用https协议

环境Centos7.6nginx-1.17.0下载官网&#xff1a;http://nginx.org/download/nginx-1.17.0.tar.gz环境确认在安装nginx前首先要确认系统中是否安装gcc、pcre-devel、zlib-devel、openssl-devel检查是否安装过软件包yum list installed | grep xxx安装软件包yum -y install gcc p…

腾讯AI Lab发布三大核心战略,与自然科研达成战略合作

来源&#xff1a;腾讯AI实验室3月15日&#xff0c;腾讯AI Lab第二届学术论坛在深圳举行&#xff0c;聚焦人工智能在医疗、游戏、多媒体内容、人机交互等四大领域的跨界研究与应用。全球30位顶级AI专家出席&#xff0c;对多项前沿研究成果进行了深入探讨与交流。本次论坛以“共享…

Java并发编程实战~Guarded Suspension模式

Guarded Suspension 模式 比如&#xff0c;项目组团建要外出聚餐&#xff0c;我们提前预订了一个包间&#xff0c;然后兴冲冲地奔过去&#xff0c;到那儿后大堂经理看了一眼包间&#xff0c;发现服务员正在收拾&#xff0c;就会告诉我们&#xff1a;“您预订的包间服务员正在收…

diy直立双足机器人_Aelos Pro 机器人:让编程变得更有趣

前言拥有一台酷炫的机器人是每个人儿时的梦想&#xff0c;爱搞机最近也有机会拿到一款来自乐聚的新品&#xff1a; Aelos Pro 机器人。相信有了解过机器人的朋友&#xff0c;应该对乐聚有所耳闻&#xff0c;乐聚在人形机器人领域一直都是行业的佼佼者&#xff0c;Aelos 系列机器…

中国科学家首次解析人脑“中央处理器”,领先美国脑计划

来源&#xff1a;澎湃新闻 作者&#xff1a;贺梨萍“我们可以探索数光年外的宇宙&#xff0c;但对我们两耳之间3磅重的大脑知之甚少。”这一想法推动美国前任总统奥巴马启动了“推进创新神经技术脑研究计划”&#xff0c;也就是所谓的 “脑计划”。中国同一领域内的研究也在加…

物理拓扑和逻辑拓扑——现实和应用的比较

在每一个网络管理者的脑子里几乎都有一张自己所管理的网络拓扑图。在网管系统中&#xff0c;生成拓扑图是网管系统的基本功能之一。目前&#xff0c;在网管系统中生成的的拓扑图分为物理拓扑和逻辑拓扑&#xff0c;他们有什么不同呢&#xff1f; 作为网络的管理者我们知道&…

虚拟机无法接受组播消息_IPTV(组播)骨干网完整解决方案--四川广电网络

一&#xff0c;基于ANYCAST 设计骨干RP热备1&#xff0c;RP选举说明组播网络RP设置分为动态&#xff0c;静态2种。但和很多网络协议不一样&#xff0c;RP的选择默认是动态优先。也就是在路由器上同时存在动态和静态RP的时候会优选动态&#xff0c;除非定义强制静态优选动态才不…

Java并发编程实战~Worker Thread模式

在上一篇文章中&#xff0c;我们介绍了一种最简单的分工模式——Thread-Per-Message 模式&#xff0c;对应到现实世界&#xff0c;其实就是委托代办。这种分工模式如果用 Java Thread 实现&#xff0c;频繁地创建、销毁线程非常影响性能&#xff0c;同时无限制地创建线程还可能…

DES算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、DES是什么&#xff1f;二、go语言实现1.使用CBC模式1.使用ECB模式前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、DES是什…

2018年世界前沿科技趋势展望及2017年态势总结

来源&#xff1a;全球技术地图本文以智能制造、新材料和信息三大领域为例&#xff0c;深入浅出的探讨了2017年以来世界前沿科技的发展脉络&#xff0c;并对2018年可能的走势进行了预测。-智能制造领域-2017年态势总结多国推出新举措&#xff0c;推动先进制造发展美国成立白宫贸…

写给女友的情诗

亲爱抱抱每次看到你很快乐的样子总是让我无比欢畅你让我看到幸福 让我看到阳光彼此的那份甜蜜只有你我才能感觉得到你让我忘掉悠愁 让我忘掉烦恼你就是我最闪亮的星星亲爱的让我紧紧的抱抱每次都是那么地不一样无论如何我还是喜欢这样抱着你直到永远Hei Baby You are my favori…

机器人3·15 | 赛迪「机器人国评中心」揭示机器人产品质量6大痛点!

来源&#xff1a;雷克世界机器人是“制造业皇冠顶端的明珠”&#xff0c;其研发、制造、应用是衡量一个国家科技创新和高端制造业水平的重要标志。当前&#xff0c;我国机器人市场进入高速增长期&#xff0c;“机器换人”浪潮势不可挡&#xff0c;产品应用层见叠出&#xff0c;…

jq如何在打开新的页面 关闭之前同链接的页面_教你如何“抢”其他域名的权重...

白帽波哥的上一篇文章《这三种域名&#xff0c;永远不会有询盘》里留了两个尾巴&#xff0c;一个是如何将好域名的权重导到一个新域名上&#xff0c;另一个是如何清除域名里的垃圾外链。今天先讲第一个&#xff0c;如何将好的老域名权重导到新域名&#xff0c;也就是业内常说的…