vi笔记附录1--vi之配置一个强大的c语言、python IED

2024-05-31 00:32

本文主要是介绍vi笔记附录1--vi之配置一个强大的c语言、python IED,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

vi笔记附录1--vi之配置一个强大的c语言、python IED

 

2020-11-07-更新-三、vim特殊使用方法--12、NERDTree NERDTreeDirArrowExpandable 报错

一、vim效果图

       话不多说,想知道vi/vim文档编辑器有多强大请看下图,图1是我自己测试的c语言IDE,图2是小码哥测试的python IDE,通过下面两个图可以见识vim独特之处了!

图1

图2

那么如何来配置以上的IED呢,方法如下:

 

二、简易安装方法:

打开终端,执行下面的命令就自动安装好了:

wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x

或者自己手动安装:(以ubuntu为例)

  1. 安装vim sudo apt-get install vim
  2. 安装ctags:sudo apt-get install ctags
  3. 安装一些必备程序:sudo apt-get install xclip vim-gnome astyle python-setuptools
  4. python代码格式化工具:sudo easy_install -ZU autopep8
  5. sudo ln -s /usr/bin/ctags /usr/local/bin/ctags
  6. clone配置文件:cd ~/ && git clone git://github.com/ma6174/vim.git
  7. mv ~/vim ~/.vim
  8. mv ~/.vim/.vimrc ~/
  9. clone bundle 程序:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
  10. 打开vim并执行bundle程序:BundleInstall
  11. 重新打开vim即可看到效果
以上方法是小码哥配置好的vim IDE,详细问题可以去参考其博客和GitHub:
博客网址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html
GitHub网址:https://github.com/ma6174/vim/tree/master
小码哥的方法建议直接使用wget,wget亲测可用;当然有能力的可以手动安装,但是极易出错!本人在Ubuntu1404和Centos7上面测试过,都可以使用!
注意小码哥的wim中的() <> []默认都没有开放,需要自己在~/.vimrc中取消注释 但是取消后使用 小马哥的vim,发现无法使用() <> []等几个补全功能,解决办法是:使用下面几个能正常使用()补全的vimrc,然后使用小马哥的方法覆盖即可正常使用() <> []了;或者将() [] <>补全的命令放在vimrc最后面

 

三、vim特殊使用方法

0、注意事项
(1)安装注意事项
使用小码哥配置好的vim时候,请使用sudo或root模式运行 wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x
 如果只使用普通用户模式则可能会出现在root模式无法用各类插件的提示(普通模式下载安装时在 /root/.vim中是没有相关插件的),在root权限下使用以上命令则可避免上面问题,并且会在/root/.vim和~/.vim中分别有相关插件
(2)部分电脑硬件快捷键与vim快捷键冲突问题
由于vim中内置了很多快捷键,如F1 -F12中的快捷键,但是很多时候F1-F12中的某个键是用来控制电脑声音加减、亮度加减等功能的,此时
F1-F12 中的键可以和Fn配合使用,如F3失灵则使用Fn+F3就好了;(dell 燃7000中测试过)
1、  使用小马哥的vim后发现其和普通ide没有什么区别了,全选拖动啊,ctrl+a,del都可以正常使用,对于未定义或者使用不当的地方,还会出现红色>>箭头提示;还有其它一系列的使用方法将在 vim特殊使用方法中持续更新!

2、   F3 或者Ctrl+F3进入目录界面,q退出;

:vertical new 或者:vnew就打开一个竖直的窗口,即为分列打开

vim从右边代码跳到左边目录,只需要ctrl+w就可以了,ctrl+w可以实现不同窗口之间的跳转;

:split 水平打开一个新文件, :split name打开某一个文件

:vsplit 竖直方向打开一个新文件,:vsplit  name 竖直方向打开一个名为name的文件 

:close 关闭当前窗口; :q也可以退出当前窗口

Shift+/ 打开快熟帮助栏目,有大量针对目录和标签的操作功能说明

:help 打开中文帮助文档,里面包含各种命令和配置的用法(此帮助手册只限于此方式安装的vim)


3、函数、变量显示
:TlistToggle  或者F9就可以显示当前文件的函数、变量信息,可以通过F9或者q来关闭相应窗口,切换功能还是ctrl+w,当显示函数、变量后,可以直接鼠标点击进入到特定的函数或者变量,也可以使用上下左右箭头和enter键选择进入特定函数和变量,当然还可以使用加减或者+-对多个变量函数进行展开折叠;
其中变量显示、折叠相关的设置可以直接在~/.vimrc中查找Tlist* (?Tlist)来查找相关的设置,可以根据需要修改
注意:使用vim的此功能需要安装ctags,使用apt-get install ctags安装ctags后就可以显示所有变量和函数了,不安装的话无法显示
4、gdb调试F8,按F8后就可以调试代码了,r运行调试的程序,ctrl+c退出正在运行的调试程序,q退出gdb模式
 

5、函数、变量的跳转方法
1)跳转到特定函数、变量可以使用3中的方法,也可以使用下面快捷方法:只需要把光标放在特定函数或者变量处,然后使用以下快捷键就可以快速跳转了,可以快速定位到函数和变量中
2)[+ctrl+i 跳转到函数、变量和#define  
[+ctrl+d 跳转到#define处
ctrl+i 向前跳到前几次光标位置
ctrl+o 向后跳到后几次光标位置
3)shift +3 就可以跳转到特定的单词处,但是该盖茨会变成黑色加亮,可以使用:noh 来取消加亮;
也可以使用 ?查找内容   来查找特定的字符串,使用n来定位不同的位置

6、替换单词方法

1)选择一个单词方法:按住v按住e就可以选中一个单词了嗯,不停的按住e就不停的向后以单词为单位来选择;  

2)选中后 r 加上字符就讲所有选中的字符变为r之后的那个字符了

3)光标选择某个单词,然后yiw就会复制该单词,光标选择另外一个单词,然后viwp就可以替换该单词了;
      当然也可以使用cw来从光标出删除单词并进入insert模式,然后在输入新内容,效果是一样的;
      当然可以对一个单词使用yw,对另外一个单词来用cw,使用Esc后再p就可以删除刚刚的单词了
注意:如果先对A使用yw,再对B使用dw,再p,则粘贴的维dw的内容,原因为dw的内容已经在第一个删除的buffer中,yw被自动转移到第二个buffer中了;
       可以使用下面方法来解决覆盖问题,vim中有多个缓冲器,我们可以把粘贴的内容放在缓冲器中,然后再粘贴到特定地方,比如先将A粘贴在a寄存器中,然后再删除B内容,最后将A寄存器内容粘贴到B处,具体操作如下 :光标先定到A处,用"apw 就将单词复制到a中了,然后使用dw就删除B了,最后用"ap就将a中的内容A粘贴在B处了
7、复制和粘贴
复制是把指定内容复制到内存的一块缓冲区中,而粘贴是把缓冲区中的内容粘贴到光标所在位置。
复制和粘贴的方法如下。
yw:将光标所在位置到字尾的字符复制到缓冲区中,y是yank的首字母。
nyw:将光标所在位置开始的n个字复制到缓冲区中,n为数字。
yb:从光标开始向左复制一个字。
nyb:从光标开始向左复制n个字,n为数字。
y0:复制从光标前一个字符到行首的所有字符。
y$:复制从光标开始到行末的所有字符。
yy:复制当前行,即光标所在的行。
nyy:复制从当前行开始的n行,n为数字。
p:在光标所在位置的后面插入复制的文本,p是paste的首字母。
P:在光标所在位置的前面插入复制的文本。
np:在光标所在位置的后面插入复制的文本,共复制n次。
nP:在光标所在位置的前面插入复制的文本,共复制n次。

8、格式化代码
1) gg           回到文件的第一行
2) shift+v
3) shift+g      回到文件的最后一行
4) =            格式化
对于某些文件,可能之前的tab键不是占用4个空格,使用以上格式化无效,可以使用  :retab  来重新解析tab键

9、扩展自己的dict
很多时候vim中的自动补全语法是有限的,而我们经常使用的语法和函数却不包括在内,此时可以自己在补全文件xx.dict中添加自己的语法
vim的语法补全文件基本在 ~/.vim/dict 和 /root/.vim/dict两个文件加中,如下图,可以在c.dict中添加一个socket函数,那么就会多一个socket语法补全了,如下图;

注意:正常情况下,若在普通用户下配置vim的插件,发现在root权限下无法使用,此时需要让root用户访问到她家的vim插件即可,方法1::添加的时候最好在两个dict(~/.vim/dict 和 /root/.vim/dict)中都添加一下,否则只能在普通用户下使用该补全;方法2:将普通用户下的.vim文件夹链接到root用户目录下,即: ln -s  /home/用户名/.vim  /root/.vim

10、其它快捷方式

跳转到行首(正常模式下--非输入模式):Home 、0(注:此处为)对应的0,而非数字键盘上3行3列的0)

跳转到行尾(正常模式下--非输入模式):End 、((注:(为英文模式下的Shift+9)、$;

跳转到文档首:gg、1G

跳转到文档尾:G

11、如何取消vim产生的***.un~和xxx.~文件

在vimrc中添加,如下几行即可:

set noundofile
set nobackup
set noswapfil

12、 NERDTree NERDTreeDirArrowExpandable 报错
默认情况下nerdtree 文件夹扩展方式为 实心 "▸",该字符可能无法被识别到,此时每次启动都会报如下错误:

Missing quote: "▸")
或者如下错误:
Error detected while processing /home/xg/.vim/bundle/nerdtree/plugin/NERD_tree.vim:
line   57:
E115: Missing quote: '????)
E116: Invalid arguments for function get(g:, 'NERDTreeDirArrowExpandable',  '????)解决方法:
1)更改xx文件中的箭头为>和v
...
if !nerdtree#runningWindows() && !nerdtree#runningCygwin()                          |||     g:NERDTreeSortDirslet g:NERDTreeDirArrowExpandable  = get(g:, 'NERDTreeDirArrowExpandable',  '>') |||     g:NERDTreeDirArrowExpandablelet g:NERDTreeDirArrowCollapsible = get(g:, 'NERDTreeDirArrowCollapsible', 'v') |||     g:NERDTreeDirArrowCollapsible
else 
...
2)更改.vimrc中的箭头为>和v
...
"for nerdtree ctrlp vim-template    
let g:NERDTreeDirArrows = 1              
let g:NERDTreeDirArrowExpandable = '>'   
let g:NERDTreeDirArrowCollapsible = 'V'  
let g:NERDTreeGlyphReadOnly = "RO"
...

 

此部分,本文后续将继续更新!
vim其它相关小技巧请参考以下文章:
vi笔记1——vi之配置一个强大的vi/vim
vi笔记2——vi之简单编辑

vi笔记3——vi之快速移动

vi笔记4——vi之超越基础

vi笔记1--vi之配置一个强大的vi/vim

vim插件1--taglist 
vim插件2--autocomplpop 
vim插件3--dict 

四、几个常见的vimrc
版本1-版本3都在以下链接中
http://download.csdn.net/download/u011127242/9705427
以上是本人配置vim的一些小技巧,贴在此处仅供参考学习,其中第三部分本文将继续更新!
在此,再次感谢小码哥无私的分享精神!

这篇关于vi笔记附录1--vi之配置一个强大的c语言、python IED的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017139

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验