问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于Ubuntu虚机内git submodule的问题

发布网友 发布时间:2022-05-01 15:39

我来回答

1个回答

热心网友 时间:2022-06-18 22:22

一、Ubuntu系统默认内置:

实际上ubuntu默认没有安装老版本的vi,只装了vim。vi是vim.tiny(vim的最小化版本,不含 GUI,并且仅含有一小部分功能,并且默认与vi兼容。此软件包不依赖于vim-runtime软件包)的一个别名,可用命令ls -l /usr/bin/vi来进行查看vi是指向/etc/alternatives/vi,而/etc/alternatives/vi 又指向/usr/bin/vim.tiny,从命令update-alternatives --display vi可以看出默认情况下,vi当前指向的是vim.tiny。

二、VIM版本及其对比:

不同的编译选项编译出来的vim而已。比如vim是终端下的vim-basic跟vim-tiny,而vim-gnome是用了GNOME2 GUI的vim,在gnome桌面系统上推荐安装vim-gnome。

1、vim-tiny是tiny 版本的vim,就是功能比较少(前面有个+的表示有着功能),但是体积小,速度快。

1、vim-tiny是tiny 版本的vim,就是功能比较少(前面有个+的表示有着功能),但是体积小,速度快。

2、vim-basic:完整版的vim,不过同样没有图形界面,没有菜单

3、更多可以查看帮助文档:http://vimdoc.sourceforge.net/htmldoc/various.html#+feature-list

三、VIM安装:

默认已经安装了VIM-tiny,

下面我们以Ubuntu14.04(Unity)安装完整版VIM(VIM-basic)为例:

在终端输入以下命令,则会自动安装:

sudo apt-get install vim-basic

安装完成后,发现系统会自动把默认的vi版本从tiny改成basic版本:

此时vim-basic已经安装完毕

现在系统有两个版本的VIM,可以如下命令查看:

下面我们以Ubuntu14.04(Gnome3桌面)安装完整版VIM(VIM-gnome)为例:

自动安装完之后,可以使用以下命令进行查看:

已经添加到系统

查看版本

四、VIM配置:

注:只对各个用户在自己的当前目录下的.vimrc修改的话,修改内容只对本用户有效,要想全部有效,可以修改/etc/vim/vimrc.    在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。   启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:$vi ~/.vimrc

设置完后 $:x或者 $wq  进行保存退出即可。  下面给出一个例子,其中列出了经常用到的设置,详细的设置信息请参照参考资料:

基本配置[1] [2]:

"开启语法高亮 syntax on "依文件类型设置自动缩进 filetype indent plugin on   "显示当前的行号列号: set ruler "在状态栏显示正在输入的命令 set showcmd   "关闭/打开配对括号高亮 "NoMatchParen DoMatchParen

行号的显示与隐藏[3]:

"显示行号: set number "为方便复制,用<F2>开启/关闭行号显示: nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>

启用Modeline(即允许被编辑的文件以注释的形式设置Vim选项,详见Vim Wiki: Modeline magic)[4]:

set modeline

如果终端使用的是深色背景:

"为深色背景调整配色 set background=dark

下文的配置很多都依赖于第三方开发的 Vim 插件。为了方便地安装和维护这些插件,推荐先安装一种插件管理工具,目前较为流行的是 Vundle 和 pathogen。二者功能类似,但 Vundle 的配置更灵活, pathogen 则相对简洁。二者都能很好地与Git结合,安装插件十分方便。

如果你使用 Git 管理你的配置文件,那么还可以将 Pathogen 或 Vundle 与 Git 的 Submole 功能管理插件结合[5],使得在多台电脑间同步插件及在本地更新插件变得十分便捷。

# 在存放配置文件的主文件夹下,添加一个 submole git submole add https://github.com/gmarik/vundle.git .vim/bundle/vundle   # 用类似的办法添加多个插件后,以后升级插件只需: git submole update   # 如果其它电脑 checkout 出配置文件后,要先: git submole init

插件管理工具无需通过系统的包管理系统安装,只要将需要的文件放在 ~/.vim/ 目录中即可。这样,一套配置文件也可以方便地用在多个不同的系统环境中。

Vim 7已经内置了代码补全功能[6],补全操作可分为两种:

Vim的补全菜单操作方式与一般IDE的方式不同,可加入如下设置[7]:

"让Vim的补全菜单行为与一般IDE一致(参考VimTip1228) set completeopt+=longest   "离开插入模式后自动关闭预览窗口 autocmd InsertLeave * if pumvisible() == 0|pclose|endif   "回车即选中当前项 inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"   "上下左右键的行为 inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>" inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>" inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>" inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"

如需自动补全,可安装AutoComplPop插件,安装后如需在补全是显示文档(预览),可加入设置:

let g:acp_completeoptPreview = 1

经常要将一段代码注释掉或取消注释,而尤其对于某些只支持单行注释的语言来说,逐行加注释很麻烦,这时快速注释(或取消注释)代码的插件就显得很有用了。

常见的注释管理插件为The NERD Commenter,默认支持多种语言,使用方法也很简单:只需在可视(V)模式中选择一段代码,按下\cc加逐行注释,\cu取消注释,\cm添加块注释。

如有其它需求,也可考虑comments、EnhCommentify等插件。

使用自动缩进可能需要设置,vim中对自动缩进的详细设置办法见Vim代码缩进设置。

在不同的模式中调整缩进的方法不同:

另外,= 可对选中的部分进行自动缩进;]p可以实现p的粘贴功能,并自动缩进。

代码跳转类似于IDE中的Ctrl+点击功能。与代码补全类似,代码浏览工具亦可分为基于文本分析的和基于代码理解的两类。

在命令模式下可直接使用下述指令:[8]

该功能依赖于ctags工具。[9]安装好ctags后,在存放代码的文件夹运行

即可生成一个描述代码结构的tags文件。

提示:

ctags的功能很强大,更详细的配置请参考其文档。

建议在~/.vimrc中添加如下配置以使Vim在父目录中寻找tags文件[10]:

set tags=tags;/

设置好后,可在Vim中使用如下功能:Ctrl-]转至最佳匹配的相应Tag,Ctrl-T返回上一个匹配。如果有多个匹配,g Ctrl-]可显示所有备选的tags。如有需要,可互换Ctrl-]和g Ctrl-] [11]:

"在普通和可视模式中,将<c-]>与g<c-]>互换 nnoremap <c-]> g<c-]> vnoremap <c-]> g<c-]>   nnoremap g<c-]> <c-]> vnoremap g<c-]> <c-]>

使用:make可调用make命令编译程序,配合Vim内置的QuickFix功能,可以像IDE一样打开一个窗口展示编译错误和警告,通过它还可以方便地跳转到各编译错误的产生位置。

常用的命令有:cw[indow](如有错误打开quickfix窗口)、:cn(跳到下一个错误)、:cp(跳到前一个错误)等,具体可:help quickfix。

如果想在有错时自动打开quickfix窗口[12]:

" 编译后,如有错误则打开quickfix窗口。(光标仍停留在源码窗口) " " 注意:需要开启netsting autocmd autocmd QuickFixCmdPost [^l]* nested cwindow autocmd QuickFixCmdPost l* nested lwindow

默认情况下,:mak[e]会跳转到第一个错误,如果不想启用这个功能,请使用:make!。

代码较长时可启用代码折叠功能,如按语法高亮元素折叠:

set foldmethod=syntax "默认情况下不折叠 set foldlevel=99

随后即可使用z系列命令管理代码折叠。如za会翻转当前位置的折叠状态,zA会递归翻转当前层所有代码的折叠状态等。当然也可以把功能键映射到za:

map <F3> za

K 键可用于查看当前函数的文档。

近来仍被积极维护的代码托管在 GitHub 上的插件[13]:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男人醉女人累原歌 我大概在2009年玩的很早的一款冒险动作游戏有一关是埃及狗头人主角捡武... 提成点数怎么算公式 Huamei/华美每日粗粮粗纤维饼-适用对象 0pp01107格式化后成白屏且不能开机怎么办 五邑大学是市属还是省属 五邑大学校区有几个 窝瓜焖荷包蛋怎么做? 达科塔·芬妮简要生平 湖北自动冷库多少钱 用Bundle管理vim的插件,打上BundleInstall后,怎么都是Error Processing... 苹果电脑下怎么安装vim 简单电子简历怎么制作 有没有一年以上用 是一年改一次吗 回号干嘛用的 别人租干嘛?还要求一年以上,有50以上好友 设置是什么?要注意哪些,能用汉字吗?有什么作用? 自己原来的老,多年没用了,现在还能继续登录使用吗? 用了一年的卖给微商,没有取消实名认证会有风险吗 什么是 我的满一年 这种高价卖出去 报多少价格合理 我有个快一年的没登录了,现在还能正常登录吗 一年不用的会怎么样? 一年以上的问题 50元纪念币工行预约网址 是唯一的吗?微信账号与的区别是什么? 怎样才能把下载的铃声做信息铃声 一年前的有什么用处 一般的手机怎么使用自己下载的歌曲做信息铃声? 华为手机 好不好? 在电脑上登录同一个,可以不让手机微信上显示已在电脑上登录吗? 在vim中pyflakes.vim需要python编译怎么办 win10的C盘中的“用户”文件夹,其路径却是User,那么,这算是中文路径还是英文路径? win10系统怎么把用户文件夹 顺风约了好几天都没人接单怎么办 小米的中信银行信用卡怎么样? 如图所示:我要办理小米信用卡啊,给我的选择里没有我所在的地区啊? 小米信用卡怎么样,你们谁申请了 小米钱包中学生可以申请信用卡吗?申请信用卡的具体情况 小米商城信用卡分期是不是还需要在APP里申请一下? 如果点到了ADB重启怎么办? 在网吧玩CF时怎么使耳机声音调最大? 网吧电脑音量太小怎么办 我上YY都听不清他们说话 我把音量都调最大了 抖音和抖音极速版抖音火山版虎牙直播西瓜视频今日头条哪个资源最多那个最好用? 有什么方法可以把游戏的声音调得更大? 斗鱼、虎牙上传短视频有收益吗? 抖音星卡对虎牙直播免流吗? 腾讯大王卡和阿里宝卡用哪个好?我平时用的比较是今日头条,优酷和哔哩哔哩。 写雨的伤情句子有哪些?