vim note(6)--vim的一个较全的介绍(转)
vim的配置文件 ~/.vimrc 用户的默认配置文件
~/.vim/plugin/ 用户的默认脚本文件的存放文件夹
~/.vim/ftplugin/ 用户的默认文件类型相关脚本文件的存放文件夹
vim提供的编程支持 文本信息(行号、文件名称等)
代码缩进
语法高亮
高速定位
标记位置
全文搜索
补全
多文件编辑
多窗体编辑
函数列表
文件列表
函数跳转
语法错误
字符集的编码
二进制查看 等等...
初试vim 在终端以root启动 输入vim命令 显示vim首页 :r filename 读入一个文件内容,并写入到当前编辑器中 按i进入插入模式 编辑完后:w保存 编辑完后按esc退出插入模式 进入正常模式 然后输入:sh进入shell 编译执行
文本信息配置 set nu(写入配置文件.vimrc中) 显示行号。
ctrl-g(正常模式下使用命令) 显示文件信息和当前行。
statusline.vim(插件) 添加底部状态栏。
代码缩进配置 filetype on(写入配置文件.vimrc中) 使vim对文件类型敏感。
autocmd FileType c,cpp,h :setlocal cindent cinoptions=:0,g0,t0(写入配置文件.vimrc中) 设置c缩进风格。详细详情參见:h cinoptions-values。
autocmd FileType c,cpp,h :setlocal et sta sw=4 sts=4 tabstop=4(写入配置文件.vimrc中) 设置一次缩进的距离是4个空格。
=(正常模式或者可视模式下使用命令) 依照缩进风格排版代码。
<(可视模式下使用命令) 向左缩进一级。
>(可视模式下使用命令) 向右缩进一级。
语法高亮 filetype plugin on(写入配置文件.vimrc中) 通常安装的vim中已经增加了各种语言的语法高亮插件。我们仅仅须要打开文件类型相关的插件就能够了。
高速定位 gd(正常模式下使用命令) 跳转到局部变量定义处。
gD(正常模式下使用命令) 跳转到全局标量定义处。
*(正常模式下使用命令) 搜索并跳到下一个光标所在的单词。
g*(正常模式下使用命令) 功能接近*,可是查找的目标不带\<和\>单词分界符号。 #(正常模式下使用命令) 搜索并跳到上一个光标所在的单词。
g#(正常模式下使用命令) 功能接近#,可是查找的目标不带\<和\>单词分界符号。
标记位置 m{a-zA-Z0-9} (正常模式下使用命令) 在当前位置制作一个标记,标记名字能够使用a-z或者A-Z之间的随意字符,比如输入ma,就是将当前位置标记为a标记。注意a-z为单文件标记,不可跨文件使用。而A-Z0-9为全局标记,能够跨文件使用。 ‘{a-zA-Z0-9} (正常模式下使用命令) 跳转到本文件的标记上。 :marks [{a-zA-z0-9}] (正常模式下使用命令) 查看指定标记的内容,不写标记号则查看全部。 :delm {a-zA-z0-9} (正常模式下使用命令) 删除一个标记。
全文搜索 :vimgrep(正常模式下使用命令) 全文搜索,功能同grep命令。可是支持在vim进行多文件跳转定位。 用法:vimgrep 正則表達式 文件。 文件支持通配符。比如*.c代表全部的.c文件。 假设希望递归搜索,能够使用**/*,表示搜索全部的文件。
:cl 列举结果
:cc(正常模式下使用命令) 当前结果
:cn(正常模式下使用命令) 下一个结果
:cp(正常模式下使用命令) 上一个结果
:cw(正常模式下使用命令) 又一次打开搜索结果窗体
多文件编辑 vim f1 f2 …… fn(在shell下使用命令) 打开多个文件。
:e 文件名称(正常模式下使用命令) 在vim中打开新文件。 :ls(正常模式下使用命令) 全部打开文件列表。
:bn(正常模式下使用命令) 到下一个文件。
:bp(正常模式下使用命令) 到上一个文件。
:b# 或 ctrl-6(正常模式下使用命令) 到近期的前一个文件。
set autowriteall(写入配置文件.vimrc中) 假设讨厌每次打开新文件,vim喋喋不休的要求你保存。那么能够设置自己主动保存。
多窗体编辑
:sp 文件名称(正常模式下使用命令) 横向拆分窗体(多行窗体)。 :vsp 文件名称(正常模式下使用命令) 纵向拆分窗体(多列窗体)。
ctrl-w h(正常模式下使用命令) 将光标移动到左一个窗体。
ctrl-w j(正常模式下使用命令) 将光标移动到下一个窗体。
ctrl-w k(正常模式下使用命令) 将光标移动到上一个窗体。
ctrl-w l(正常模式下使用命令) 将光标移动到右一个窗体。 ctrl-w +(正常模式下使用命令) 当前窗体尺寸变大。
ctrl-w -(正常模式下使用命令) 当前窗体尺寸变小。
ctrl-w o(正常模式下使用命令) 仅仅显示当前窗体。
函数列表
taglist.vim(插件) 列表插件。
let Tlist_Use_Right_Window = 1(写入配置文件.vimrc中) 假设希望列表在右側显示,则增加这个配置,默认是左側。
:Tlist(正常模式下使用命令) 显示函数列表。
d(在taglist窗体下使用) 从列表中删除文件。
+(在taglist窗体下使用) 展开文件。
-(在taglist窗体下使用) 折叠文件。 =(在taglist窗体下使用) 折叠全部文件。
x(在taglist窗体下使用) 显示或隐藏正常窗体。
文件列表
NERD_tree.vim(插件) 横向拆分窗体(多行窗体)。 let NERDTreeWinPos = 'right'(写入配置文件.vimrc中) 假设希望文件树在右側显示。则增加这个配置,默认是左側。
:NERDTree(正常模式下使用命令) 显示文件列表。
函数跳转
ctags(软件,须要另外安装) 生成多种语言tag文件的软件。 Ctags –R *.c(在shell下使用命令) 生成当前路径全部.c文件的tag。-R代表递归。
:ta 标记 或 [g] ctrl-] 列举标签(多个标签)或者跳转到标签(单个标签)。 ctrl-t 返回上一级。 :tags 列出标签栈。
语法错误
:make(正常模式下使用命令) 运行外部make命令。而且显示全部的编译警告和错误,而且能够在vim中定位。
:cl 列举结果
:cc(正常模式下使用命令) 当前结果
:cn(正常模式下使用命令) 下一个结果
:cp(正常模式下使用命令) 上一个结果
:cw(正常模式下使用命令) 又一次打开搜索结果窗体
二进制文件查看 (鉴于有同学理解出现分歧 将二进制查看更新为二进制文件查看) :范围!xxd(正常模式下使用命令) 把指定范围的部分转化为二进制文件阅读方式。 :范围!xxd -r(正常模式下使用命令) 把指定范围的部分转回字符阅读方式。
字符集的编码
let &termencoding=&encoding
set fileencodings=utf-8,gbk,cp936(写入配置文件.vimrc中)
增加多种字符编码支持。 :set fileencoding(正常模式下使用命令) 设定文件字符编码。
补充 ctrl-p(插入模式下使用命令) 跳出补全菜单。
ctrl-n(在跳出补全菜单后) 下一个结果。
ctrl-p(在跳出补全菜单后) 上一个结果。
ctrl-y(在跳出补全菜单后) 选择当前结果。
ctrl-x ctrl-f(插入模式下使用命令) 文件名称补全。
ctrl-x ctrl-i(插入模式下使用命令) 包括的头文件。
ctrl-x ctrl-](插入模式下使用命令) ctags(将在下文中介绍)符号补全。 ctrl-x ctrl-o(插入模式下使用命令) omni补全,须要设置omnifunc变量。
vim其它命令 (參考vi(vim)教程) 打开文件、保存、关闭文件: vi filename //打开filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出编辑器。假设文件已改动请使用以下的命令
:q! //退出编辑器。且不保存
:wq //退出编辑器。且保存文件 插入文本或行: a //在当前光标位置的右边加入文本
i //在当前光标位置的左边加入文本
A //在当前行的末尾位置加入文本
I //在当前行的開始处加入文本(非空字符的行首)
O //在当前行的上面新建一行
o //在当前行的以下新建一行
R //替换(覆盖)当前光标位置及后面的若干文本
J //合并光标所在行及下一行为一行(依旧在命令模式) 移动光标: 使用上下左右方向键 命令模式下:h 向左、j 向下 、k 向上、l 向右。
空格键 向右、Backspace 向左、Enter 移动到下一行首、- 移动到上一行首。 删除: x //删除当前字符
nx //删除从光标開始的n个字符
dd //删除当前行
ndd //向下删除当前行在内的n行
u //撤销上一步操作
U //撤销对当前行的全部操作 搜索: /vpser //向光标下搜索vpser字符串
?vpser //向光标上搜索vpser字符串
n //向下搜索前一个搜素动作
N //向上搜索前一个搜索动作 跳转: n+ //向下跳n行
n- //向上跳n行
nG //跳到行号为n的行
G //跳至文件的底部 设置行号: :set nu //显示行号
:set nonu //取消显示行号 复制: yy //将当前行拷贝到缓存区。也能够用 "ayy 复制,"a 为缓冲区,a也能够替换为a到z的随意字母,能够完毕多个复制任务。
nyy //将当前行向下n行拷贝到缓冲区。也能够用 "anyy 复制。"a 为缓冲区,a也能够替换为a到z的随意字母,能够完毕多个复制任务。
yw //复制从光标開始到词尾的字符。
nyw //复制从光标開始的n个单词。
y^ //复制从光标到行首的内容。 y$ //复制从光标到行尾的内容。
p //粘贴剪切板里的内容在光标后,假设使用了前面的自己定义缓冲区,建议使用"ap 进行粘贴。 P //粘贴剪切板里的内容在光标前,假设使用了前面的自己定义缓冲区,建议使用"aP 进行粘贴。 替换: :s/old/new //用new替换行中首次出现的old
:s/old/new/g //用new替换行中全部的old
:n,m s/old/new/g //用new替换从n到m行里全部的old
:%s/old/new/g //用new替换当前文件中全部的old 编辑其它资源: :e otherfilename //编辑文件名称为otherfilename的文件。 改动文件格式: :set fileformat=unix //将文件改动为unix格式,如win以下的文本文件在linux下会出现^M。
客串答案 c传递參数都是值传递的,指针的一个作用是为了解决实现类似引用的效果,另外,使用指针能够直接操作内存! 孙鹤同学的解释: 每一个线程有固定大小的栈,通常主线程的栈默认通常是8M,用指针去引用内存,往往是在使用堆内存,栈是有限的,而且受生存期影响,所以用堆的情况要比用栈很多其它,有些东西生存期非常长,超过一个函数的调用。那么就须要用堆内存。
本篇到此 希望对大家有帮助 下载地址:http://www.vim.org/scripts/script.php? script_id=273 “Tag List" 插件是一个为VIM编写的源码浏览插件,须要ctags的支撑 ,直接能够在左边列出函数列表,全局參数列表,宏。(能够排序) 1、下载taglist.zip文件,解压到$HOME/.vim文件夹下,或者$HOME/vimfiles或$VIM/vimfiles文件夹下。在这一步后,你应该有这两个文件(文件夹结构应该被保留) plugin/taglist.vim - taglist 插件文件
doc/taglist.txt - 文档(帮助)文件 2. 进入 $HOME/.vim/doc 或者 $HOME/vimfiles/doc 或者 $VIM/vimfiles/doc
文件夹, 执行Vim,在命令行模式下执行 ":helptags ." 命令处理taglist帮助文件,假设没有这上步,你将不能得到taglist帮助提示 3、假设ctags工具不在你的PATH搜索路径中,你须要在$HOME/.vimrc中设置Tlist_Ctags_Cmd 变量指出ctags的路径。 4、假设你执行的是terminal/console版本号的VIM,以及terminal 不支持改变窗体的宽度,你须要在$/HOME/.vimrc设置 'Tlist_Inc_Winwidth' 变量为0, 5、重新启动vim 6、你能够在vim的命令行模式中使用 ":TlistToggle" 命令打开/关闭taglist窗体。你能够使用 ":help taglist" 命令得到很多其它的关于使用taglist插件的信息NERDTree的安装和使用2009-09-03 12:47
NERDTree来自:
http://www.vim.org/scripts/script.php?script_id=1658 A。安装。 1,解压后,拷贝plugin/NERD_tree.vim文件到~/.vim/plugin下。拷贝doc/NERD_tree.txt文件到~/.vim/doc下 2,打开vim,载入文档。 :helptags ~/.vim/doc/NERD_tree.txt 以后查看帮助仅仅要 :h NERD_tree.txt 就可以。 B。经常使用使用。 1。标签。 1 - 1。打开一个文件夹。 :NERDTree ~/share/abc 1 - 2。标记它。 :Bookmark your_mark_name_of_abc 1 - 3。打开这个标签。 :NERDTree your_mark_name_of_abc 效果同 1 - 1。 2,高速帮助光标在NERDTree的文件夹工作区时候,按? 键。 |
方法二:/awertgvcxz (查找一个肯定不存在的字符串)
设置了高亮搜索(:set hlsearch)以后,能够通过 :set nohlsearch 永久地关闭高亮
显示,也能够通过 :nohlsearch 临时关闭高亮显示。下次搜索时将自己主动恢复高亮。
最相近的方法是 :saveas xxx 可是原文件还是存在的
this is the same way to same the file
then you need to delete the original file
vim note(6)--vim的一个较全的介绍(转)的更多相关文章
- 【Vim命令大全】史上最全的Vim命令
曾经使用了两年多的Vim,手册也翻过一遍.虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享. 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器. 虽然 ...
- vim 命令大全(写的非常全和好)http://blog.csdn.net/woshixiaosimao/article/details/54312738
下文转自链接.由原作者陈皓译自<Learn ViM Progressively>,非常不错. ——————————正文开始—————————— 你想以最快的速度学习人类史上最好的文本编辑器 ...
- vim编辑python脚本时Tab补全
所属分类:成长之路 使用Linux写python脚本的时候,初期最痛苦的是什么?当然是各种库的不熟悉,知道了库,里面的方法还要挨个看,挨个记. 所以这时候,很多小伙伴使用了ipython,最强大的功能 ...
- 请通过vim练习:vim vimtutor
vim vimtutor ================================================================================ W e l ...
- 玩转VIM之将Vim全副武装
玩转VIM之将Vim全副武装 懒癌末期的我貌似很久没有写博客了,已经欠了多少篇在计划中的博客我已然不好意思说了.好了,言归正传,在前三篇介绍了Vim作为代码编辑器之后可能会有人说,要学习那么多指令真的 ...
- linux 下vi与vim区别以及vim的使用
vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对 ...
- linux下vi与vim区别以及vim的使用-------vim编辑时脚本高光显示语法
vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...
- Cygwin下安装vim后,vim中退格键无法正常使用
问题描述: 在Cygwin中安装完vim后 进入vim,发现上下左右键和退格键都无法正常使用 问题分析: 首先考虑到的就是缺少vim的配置文件,首先查看/etc路径下是否有vim的配置文件 admin ...
- VIM使用(一) VIM插件管理利器-vundle
有关VIM的文件网上一大堆,这里只是记录一下我新配置环境的步骤.以备查看参考. sudo apt-get install gitgit clone https://github.com/gmarik/ ...
随机推荐
- dotnet core开发体验之开始MVC
开始 在上一篇文章:dotnet core多平台开发体验 ,体验了一把dotnet core 之后,现在想对之前做的例子进行改造,想看看加上mvc框架是一种什么样的体验,于是我就要开始诞生今天的这篇文 ...
- 机器视觉工具箱-Machine Vision Toolbox for Matlab
发现了一个机器视觉的Matlab工具箱,分享一下. 机器视觉工具箱(MVT的)规定,在机器视觉和基于视觉的控制有益的多种功能.这是一个有点折衷收集反映作者在光度学,摄影测量,色度学 方面的个人利益.它 ...
- IntraWeb.v14.0.32安装及破解指南
一.下载 首先从这里下载14.0.32版本的IntraWeb: 链接:http://pan.baidu.com/s/1c0rjnKO 密码:8kv2 二.卸载旧版 1. 我的Delphi版本是XE6, ...
- bzoj 3505: [Cqoi2014]数三角形 组合数学
3505: [Cqoi2014]数三角形 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 478 Solved: 293[Submit][Status ...
- 【技术贴】解决支付宝充值信用卡还款跳转到网上银行报错Error 404 - Not Found
声明 : 本文在 GFDL 1.2 下发布,本文出处光大银行信用卡 http://bbs.090989.com/forum-186-1.html http://androidgao.blogspot ...
- iOS-NSTimer-pause-暂停-引用循环
7月26日更新: 今天更新的主要目的是因为暂停!!!! 注:不推荐使用,并不是这样有错,而是因为这样写代码的规范问题,代码要有可读性,遵循代码即文档,使用暂停在团队合作中可能会带来误会,非必要不建议使 ...
- 学习VI的强文,新工作需要呀
http://www.gentoo.org/doc/zh_cn/vi-guide.xml :set nu//用于给文本加行号的. :set nocompatible //启用 vi 兼容模式,一般是给 ...
- ubuntu 增加新硬盘
在校内建了一个ftp,本来是想放一点东西的,没想到越放越多,然后硬盘就不够了. 服务器是虚拟出来的ubuntu-server 12.04.想要将新硬盘挂载到/home/ftp目录. 操作步骤: 1.可 ...
- Microsoft Internet Explorer 内存破坏漏洞(CVE-2013-3193)(MS13-059)
漏洞版本: Microsoft Internet Explorer 6 - 10 漏洞描述: BUGTRAQ ID: 61678 CVE(CAN) ID: CVE-2013-3193 Windows ...
- 重装VS2010时出现未能正确加载 "radlangsvc.package,radlangsvc.vs...
解决办法: 开始-->所有程序--Microsoft visual studio2010-->visual studio tools-->visual studio 2010命令提示 ...