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

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做