vim 配置

从shell 说起,Linux系统的shell作为操作系统的外壳,为用户提供了使用操作系统的接口,它是命令语言,命令解释程序及程序设计语言的统称。

一、shell

1、什么是shell?

shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层,如下图所示:当从shell或者其他程序向Linux传递命令时,内核会做出相应的反应。

图一
shell又是一个命令语言解释器,它拥有自己内建的shell命令集,也能被系统及其它程序所调用,用户在提示符下输入的命令都是由shell解释后传给Linux核心的。

当普通用户登录成功后,系统将执行shell程序。正是shell程序提供了命令行提示符,作为默认值(Linux系统默认的shell是bash),普通用户用“ $ ”作为提示符,超级用户(root)用“ # ”作为提示符。一旦出现shell提示符,就可以输入命令名称及命令所需的参数,shell将执行这些命令。

2、shell的分类:

Linux 中shell有很多类型,其中最常用的有三种。

(1)、sh:Bourne shell

(2)、csh :C shell

(3)、ksh:Korn shell

优缺点:
(1)sh:是UNIX最初使用的shell类型,并在每种UNIX上都可以使用 ,sh在shell编程方面非常受欢迎,也相当优秀,但是,在处理与用户交互的方面做得不尽人意。
Linux操作系统默认的shell是Bourne Again shell,使sh的扩展,简称为bash,与sh完全兼容,并在其基础上增加了许多特性;
(2)Csh比sh更适于编程,其语法与C语言相似。Linux为喜欢使用shell
的人提供了Tcsh 。Tcsh是Cshell的一个拓展版本, Tcsh包括命令行编辑、可编程单词补全、拼写校正、历史命令替换、作业控制和类似C语言的语法,它不仅和bash是提示符兼容,而且还提供比bash更多的提示符参数。
(3)、ksh:集合了sh和csh的优点,并且与sh完全兼容。linux 系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行挂起,后台执行,唤醒或终止程序;

二、vim

1、什么是vim?

vim 是Linux的一种文本编辑器。

2、vim常用技巧:

(1)、上下箭头
利用上箭头可以重新显示刚执行的命令,这一命令可以用来重复执行之前执行过的命令 ,而无需重新输入该命令。
实际上,bash保存着以前输入过的命令列表,这一列表可以被称为命令历史表。按上箭头,便可以在命令行上逐句显示各条命令,向下箭头也一样,查询前面执行过的命令。
(2)、通配符
使用文件名匹配时不必一一写出名称,就可以指定多个文件,使用这些特殊的字符,称之为通配符;
比如说:想利用rm删除目录下所有字符串“.bak”为结尾的文件,除了在rm后用所有的文件名作为参数时,还可以使用通配符“*”;
rm *.bak
(3)重定向符
有时,用户希望将命令的输出结果保存到文件中,或以文件内容作为命令的参数,就可以通过“〉”和“〈”来实现;

3、vim模式:

首先 :vim分为三种模式:普通模式、插入模式、底行模式 

( 1 ) 三者的关系:

图二

4、配置vim

很多人一看到linux的初级系统可能会觉得,windows操作系统用的习惯了,突然改用linux,特别别扭,况且,在vs编译器中编写程序时,会有语法高亮,首行缩进,还有自动补全等功能,用着方便,简单,易上手,那么,我首先要更正的就是这个问题,并不是linux系统不好用,而是你的vim 文本编译器没有配置,没配置何来方便之说? 又哪来的炫酷之言呢?

下面,我将浅析本人的配置,可能这些操作并不完善,但是配置完后,跟windows下的vs不相上下。

(1)检查版本,升级Vim

!!!特别提醒:配置vim因为会下载较多的插件和应用,建议用户最好在wifi条件下操作,避免消耗大量移动流量。

首先打开Linux环境,

本人的系统:Centos6,vim版本:8.0;

centos的包管理工具没有8.0的版本,需要进行手动编译安装。若vim版本大于7.4可忽略本步,本步正是将vim版本升级为8.0;

sudo yum install ncurses-devel //下载并且安装ncursess-devel
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master
cd src/
./configure 
sudo make
sudo make install
export PATH=/usr/local/bin:$PATH
vim --version

2. 安装Vundle

(1)如果本机未安装git: 
sudo yum install -y git//下载并安装git
(2)下载vundle
mkdir ~/.vim/bundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

https://github.com/VundleVim/Vundle.vim.git

(3) 打开配置文件

如果本地有.vimrc文件,就直接打开,没有的话新建一个这样的文本

vim ~/.vimrc
(1)在.vimrc中添加如下代码:
set nocompatible              " 去除VI一致性,必须要添加
filetype off                  " 必须要添加
" 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
call vundle#begin('~/some/path/here')

" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'

" 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在vundle#begin和vundle#end之间.
" 格式为 Plugin '用户名/插件仓库名'
Plugin 'tpope/vim-fugitive'
" 来自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略
Plugin 'L9'
" 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址'
Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git仓库(例如自己的插件) Plugin 'file:///+本地插件仓库绝对路径'
Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在仓库的子目录中.
" 正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突
Plugin 'ascenator/L9', {'name': 'newL9'}

" 你的所有插件需要在下面这行之前
call vundle#end()            " 必须
filetype plugin indent on    " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on

先保存退出;在进入其中,按Esc和:进入底行模式,在底行模式中输入
:PluginInstall

当显式Done!后,表示安装完毕

4、 安装 Nerdtree

同样,打开vim的配置文件

vim ~/.vimrc

在Plugin ‘scrooloose/nerdtree’在这行之前,添加如下代码

" 你的所有插件需要在下面这行之前
call vundle#end()        " 必须

添加完成后,在call vundle#end() 之前再添加

Plugin 'scrooloose/nerdtree'
" 注意:所有插件需要在下面这行之前
call vundle#end()      

在vim中,以同样的方式执行

:PluginInstall

在配置文件.vimrc中添加以下代码:

map <leader>t :NERDTreeToggle<CR>
"map <C-n> :NERDTreeToggle<CR>
" 显示行号
"或者显示行号还可以直接写set nu
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 设置宽度
let NERDTreeWinSize=30
" 在终端启动vim时,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 显示书签列表
let NERDTreeShowBookmarks=1

" vim不指定具体文件打开是,自动使用nerdtree
" autocmd StdinReadPre * let s:std_in=1
"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree |endif
" 当vim打开一个目录时,nerdtree自动使用
" autocmd StdinReadPre * let s:std_in=1
" autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) &&
"!exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif

" 当vim中没有其他文件,值剩下nerdtree的时候,自动关闭窗口
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
5. 安装DoxygenToolkit

在vim配置文件中call vundle#end() 之前,添加代码:

Plugin 'DoxygenToolkit.vim'

在call vundle#end() 之后,添加代码:

let g:DoxygenToolkit_briefTag_funcName = "yes"
" for C++ style, change the '@' to '\'
let g:DoxygenToolkit_commentType = "C++"
let g:DoxygenToolkit_briefTag_pre = "\\brief "
let g:DoxygenToolkit_templateParamTag_pre = "\\tparam "
let g:DoxygenToolkit_paramTag_pre = "\\param "
let g:DoxygenToolkit_returnTag = "\\return "
let g:DoxygenToolkit_throwTag_pre = "\\throw " " @exception is also valid
let g:DoxygenToolkit_fileTag = "\\file "
let g:DoxygenToolkit_dateTag = "\\date "
let g:DoxygenToolkit_authorTag = "\\author "
let g:DoxygenToolkit_versionTag = "\\version "
let g:DoxygenToolkit_blockTag = "\\name "
let g:DoxygenToolkit_classTag = "\\class "
let g:DoxygenToolkit_authorName = "suntangji, suntangj2016i@gmail.com"
let g:doxygen_enhanced_color = 1
"let g:load_doxygen_syntax = 1
nmap <F4> :DoxAuthor<cr>

在.vimrc中执行

:PluginInstall
6. 安装Taglist

taglist依赖ctags,需要进行安装

sudo yum install -y ctags

在vim配置文件中call vundle#end() 之前,添加代码:

Plugin 'taglist.vim'

在call vundle#end() 之后,添加代码:

let Tlist_Ctags_Cmd='ctags'
let Tlist_Show_One_File=1           "不同时显示多个文件的tag,只显示当前文件的
let Tlist_WinWidt =28               "设置taglist的宽度
let Tlist_Exit_OnlyWindow=1         "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window=1        "在右侧窗口中显示taglist窗口
"let Tlist_Use_Left_Windo =1
map <leader>l :Tlist<CR>

同样,在.vimrc中执行

:PluginInstall
7. 安装nerdcommenter

在.vimrc配置文件中call vundle#end() 之前,添加代码:

Plugin 'scrooloose/nerdcommenter'

在.vimrc中执行

:PluginInstall
8. 安装vim-airline

在.vimrc配置文件中call vundle#end() 之前,添加代码:

Plugin 'bling/vim-airline'
Plugin 'vim-airline/vim-airline-themes'

在call vundle#end() 之后,添加代码:

let g:airline_theme="luna"
"这个是安装字体后 必须设置此项"
"let g:airline_theme="kolor"
let g:airline_powerline_fonts = 1 
set laststatus=2  "永远显示状态栏
set t_Co=256      "在windows中用xshell连接打开vim可以显示色彩
"打开tabline功能,方便查看Buffer和切换,这个功能比较不错"
let g:airline#extensions#tabline#enabled = 1 
let g:airline#extensions#tabline#buffer_nr_show = 1 

"设置切换Buffer快捷键"
nnoremap <C-N> :bn<CR>
nnoremap <C-P> :bp<CR>

" 关闭状态显示空白符号计数,这个对我用处不大"
let g:airline#extensions#whitespace#enabled = 0 
let g:airline#extensions#whitespace#symbol = '!'
" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'

在.vimrc中执行

:PluginInstall
9. 安装YouCompleteMe

该插件需要手动编译

(1)方式一
sudo yum install -y python-dev python3-dev gcc cmake 

在vim配置文件中call vundle#end() 之前,添加代码:

Plugin 'Valloric/YouCompleteMe'

在.vimrc中执行

:PluginInstall
(2)方式二

通过git 下载源码

git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
cd ~/.vim/bundle/YouCompleteMe
sudo ./install.py --clang-completer

安装完成后将.yum_extra_conf.py复制一份到 ~/

cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/

打开.yum_extra_conf.py,在flags中添加以下代码

'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/',
'-isystem',
'/usr/include/i386-linux-gnu/c++'

最后,把flags中‘home/xxx’更改为’home/你的用户名’ ,打开配置文件.vimrc添加

let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'  "设置全局配置文件的路径
let g:ycm_seed_identifiers_with_syntax=1    " 语法关键字补全
let g:ycm_confirm_extra_conf=0  " 打开vim时不再询问是否加载ycm_extra_conf.py配置
let g:ycm_key_invoke_completion = '<C-a>' " ctrl + a 触发补全
set completeopt=longest,menu    "让Vim的补全菜单行为与一般IDE一致
10、配置结果:

图三

图四

5、配置结果测试

打开linux系统,在Temimal中创建文本,

vim wanng2.c,

按a或i或o由普通模式进入插入模式,

在插入模式中编写代码。
以屏幕上输出hello world为例:
图五
图六

这时,便会发现不同的奥妙,在vim编辑器中, 不仅添加了行号,有了语法高亮,而且当按下回车键(Enter)时,将自动首行缩进,再也不用我们手动敲空格了,十分方便,那么,想知道更多配置后的效果,快快行动起来,跟着上述步骤,操作起来吧!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: Ubuntu的安装 1.1 镜像下载 1.2 镜像的安装 2 vim的使用 2.1 vim的几种模式 2.2 vim的启动 2.3 常用文档操作。 引用: 然后点击完成,打开虚拟机,并安装系统 选择语言为中文,继续 然后设置姓名密码,安装完成 2 vim的使用 2.1 vim的几种模式 正常模式插入模式:可以输入文本,在正常模式下,按i、a、o可以进入本模式 可视模式:正常模式下按v可以进入可视模式,在可视模式下,移动光标可以选择文本。按V进入可视行模式,总是整行整行的选中。ctrl v进入可视块模式。 2.2 vim的启动 vim -c cmd file:在打开文件前,先执行指定的命令 vim -r file: 恢复上次异常退出的文件 vim -R file: 以只读的方式打开文件,但可以强制保存 vim -M file: 以只读的方式打开文件,不可以强制保存 vim -y num file: 将编辑窗口的大小设为num行 vim file: 从文件的末尾开始 vim num file: 从第num行开始 vim /string file: 打开file,并将光标停留在第一个找到的string上 vim –remote file: 用已有的vim进程打开指定的文件。 如果你不想启用多个vim会话,这个很有用。但要注意, 如果你用vim,会寻找名叫VIM的服务器;如果你已经有一个gvim在运行了, 你可以用gvim –remote file在已有的gvim中打开文件 2.3 常用文档操作 :e file –关闭当前编辑的文件,并开启新的文件。 :w – 保存修改 :wq – 保存并退出 :x – 保存并退出。 引用: 打开VMware,创建新的虚拟机 选择自定义,并点击下一步 点击下一步 点击稍后安装操作系统,并下一步 客户机操作系统选择Linux,版本选择Ubuntu 64 位,下一步 选择想要安装的虚拟机位置,不建议在c盘。 问题: 请告诉我,18.04 vim配置 在Ubuntu 18.04上配置vim很简单。首先,确保你的系统上已经安装了vim。你可以使用以下命令来安装vim: ``` sudo apt-get update sudo apt-get install vim ``` 安装完成后,你可以通过编辑.vimrc文件来配置vim。该文件位于你的用户主目录下。你可以使用以下命令来打开并编辑该文件: ``` vim ~/.vimrc ``` 在.vimrc文件中,你可以添加各种配置选项,例如设置自动缩进、设置颜色主题、定义快捷键等。以下是一些常见的配置选项示例: ``` " 设置自动缩进 set autoindent " 设置显示行号 set number " 设置颜色主题 syntax on colorscheme desert " 定义快捷键 map <F5> :w<CR> " 设置Tab键为4个空格 set tabstop=4 set shiftwidth=4 set expandtab ``` 保存并关闭.vimrc文件后,你的vim配置就完成了。现在你可以重新启动vim,你的配置将生效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值