`
chaostan
  • 浏览: 28405 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

VIM基本命令

阅读更多
Linux下进行Rails的开发
环境已经搭好
但是说实话
从来没有玩过Linux的开发 所以现在还在选择EDITOR之类的
之前论坛贴里得到不少高手的指点
所以安装里VIM
VIM这种纯键盘编辑的文字编辑器也是第一使用
说实话也花了不少时间去摸索

在vim中敲:help可以看到详细的帮助文档
上手的话可以shell敲vimtutor有一个简单的教程

然后是搜索VIM基本命令,觉得这个文章不错http://hi.baidu.com/glaivelee/blog/item/66f7b844a2b57943500ffe45.html
转载至此

语法高亮 :   syntax on

显示行号 :   set number

设置字体及字体大小: set guifont=新宋体:h11

1、移动及跳转:
:n 跳转到n行,n表示行号
nG 跳转到n行,n表示行号
CTRL-] 跳转到当前光标所在单词对应的主题
CTRL-O 回到前一个位置
h 左
j 下
k 上
l 右
W 向前移动一个word
b 向后移动一个word
$ 命令将光标移动到当前行行尾
^ 命令将光标移动到当前行的第一个非空白字符上
0 命令则总是把光标移动到当前行的第一个字符上
fx 在当前行上查找下一个字符x
% 跳转到与之匹配的括号处
gf 命令方便地跳转到光标下的文件名所代表的文件中
`. 跳转到最近修改过的位置
“ 跳转到最近光标定位的位置
m{mark} 将当前光标下的位置名之为标记{mark},从a到z一共可以使用26个自定义的标记
`{mark} 跳转到一个你定义的{mark}标记
50%mF 到文件的半中间(”50%”)处设置一个名为F的全局标记
G 光标定位到最后一行上
gg 光标定位到第一行上
50% 光标定位在文件的中间
H 光标定位在显示屏的第一行
M 光标定位在显示屏的中间
L 光标定位在显示屏的最后一行
CTRL-U 命令会使文本向下滚动半屏
CTRL-D 命令将窗口向下移动半屏
CTRL-F 命令将向前滚动一整屏(实际上是整屏去两行)
CTRL-B 命令将向后滚动一整屏(实际上是整屏去两行)
zz 命令会把当前行置为屏幕正中央(z字取其象形意义模拟一张纸的折叠及变形位置重置)
zt 命令会把当前行置于屏幕顶端(t意为top)
zb 命令会把当前行置于屏幕底端(b意为bottom)
:jumps 列出关于你曾经跳转过的位置的列表,你最后一个跳转的位置被特别以一个”>”号标记
:marks 列出自定义的标记,包含VIM内部自定义的标识
2、搜索
/ 命令可用于搜索一个字符串,在键入的过程中还可以用箭头键和删除键进行移动和修改
? 命令与“/”的工作相同, 只是搜索方向相反
n 继续搜索下一个字符串
N 命令与“n”的工作相同, 只是搜索方向相反
* 向下完整匹配光标下的单词
# 向上完整匹配光标下的单词
g 向下部分匹配光标下的单词
Ctrl-P 向前搜索可匹配的单词并完成
Ctrl-N 向后搜索可匹配的单词并完成
:set ignorecase 设置忽略大小写
:set hlsearch 高亮显示搜索结果
:set incsearch 键入目标字符串的过程中Vim就同时开始了搜索工作
:set nowrapscan 会使搜索过程在文件结束时就停止
3、编辑(新增、删除、移动、复制)
x 代表dl(删除当前光标下的字符)
X 代表dh(删除当前光标左边的字符)
D 代表d$(删除到行尾的内容)
C 代表c$(修改到行尾的内容)
s 代表cl(修改一个字符)
S 代表cc(修改一整行)
diw 删除当前光标所在的word(不包括空白字符),意为Delete Inner Word
daw 删除当前光标所在的word(包括空白字符),意为Delete A Word
dG 删除当前行至文件尾的内容
dgg 删除当前行至文件头的内容
cis 修改一整个句子,意为change Inner Sentence
R 让Vim进入replace模式,在此模式下,每个键入的字符都会替换掉当前光标下的字符
p 取回被删除的内容,可以使用命令记数(在Vim中这叫put)
P 与”p”一样取回被删除的内容, 不过它把被取回的内容置于光标之前
yw 复制一个word,同样可以使用命令记数,c表示change而不是copy
yy 复制一整行
y$ 复制当前光标至行尾
~ 改变当前光标下字符的大小写
3、在vi中替换字符串:
:s/vivian/sky/ 替换当前行第一个vivian为sky
:s/vivian/sky/g 替换当前行所有vivian为sky,g表示global
:n,$s/vivian/sky/ 替换第n行开始到最后一行中每一行的第一个vivian为sky,n为数字
:n,$s/vivian/sky/g 替换第n行开始到最后一行中每一行所有vivian为sky
:.,$s/vivian/sky/g 替换当前行开始到最后一行中每一行所有vivian为sky
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky,%表示所有行
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)替换每一行中所有 vivian 为 sky
:s#vivian/#sky/# 替换当前行第一个vivian/为sky/,可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:3,$s/^/some string/ 在文件的第一行至最后一行的行首前插入some string
:%s/$/some string/g 在整个文件每一行的行尾添加some string
:%s/\s\+$// 去掉所有的行尾空格,“\s”表示空白字符(空格和制表符),“\+”对前面的字符匹配一次或多次(越多越好),“$”匹配行尾(使用“\$”表示单纯的“$”字符)
:%s/\(\s*\n\)\+/\r/ 去掉所有的空白行,“\(”和“\)”对表达式进行分组,使其被视作一个不可分割的整体。
:%s!\s*//.*!! 去掉所有的“//”注释
:%s!\s*/\*\_.\{-}\*/\s*!!g 去掉所有的“”注释
3、文件处理
:w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1。
:20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1。
:X 文件加密,会提示输入密码。
vim -x exam.txt 新编辑的文件加密,会提示输入密码。
vim -R file 只读方式打开文件。
vimdiff main.c~ main.c 显示两个文件的不同之处
:args 显示文件列表
:n 切换到文件2 (n=next)。
:N 切换回文件1。
:scriptnames 显示VIM加载的vimrc
VIM命令的固定模式: 操作符命令+位移命令
:version 显示VIM版本信息,包含特性、编译方式及配置文件目录
:map 列出当前已定义的映射
ptions 打开一个新窗口, 在该窗口的最开头的注释下面是一个选项列表
:help E37
5、常用快捷方式:
“.”:重复上次的修改命令
“Ctrl-X Ctrl-L”:搜索可匹配的行并完成
“Ctrl-X Ctrl-F”:搜索可匹配的文件名并完成
“Ctrl-G”:显示文件名,当前光标所在行的行号,总的行数,以及当前行所在文件中的百分比和当前光标所在的列的信息
“ZQ”:无条件退出
“ZZ”:(存盘退出)
“ga”:显示光标下的字符在当前使用的encoding下的内码
“guw”:光标下的单词变为小写
“gUw”:光标下的单词变为大写
“xp”:左右交换光标处两字符的位置
“ddp”:上下交换光标处两行的位置,p命令把它取回来(在Vim中这叫put)
“J”:两行合并为一行, 也就是说两行之间的换行符被删除了
“u”:撤消上一次命令
“Ctrl+R”:重做上一次命令
“o”:在当前行的下面另起一行, 并使当前模式转为Insert模式
6、执行外部命令:
“:!命令”:可以在 Vim 中执行一个外部命令
“:r!”:命令可以在外部命令执行的结果插入到当前编辑的缓冲区中
“:%!nl”:要对包含空行的所有行进行编号
“:!echo $VIMRUNTIME” 显示VIM的目录(/usr/share/vim/vim63)
“vimtutor” 显示VIM的30分钟的教程
7、set选项:
:set list 查看制表符,现在每个制表符都会以^I显示. 同时每行行尾会有一个$字符。
:set key= 去掉文件加密。
:syntax enable 打开彩色
:set number? 显示number的值
:set number& 恢复选项的默认值
:set autoindent 让Vim在开始一个新行时对该行施以上一行的缩进方式
:set showcmd 在Vim窗口的右下角显示一个完整的命令已经完成的部分
:set autowrite 设置自动存盘
:set backup 设置备份,生成的备份文件名将是原文件名后面附加一个~
:set backupext=.bak 设置备份文件名后辍

标签
:tabnew 打开新标签页.
:tabe <file> 在新标签页打开文件.
<ctrl> + PageUp, PageDown 切换标签页.
:tabnext, tabprev 切换标签页,Putty 下只能用这个.
文件
:e <file> 打开文件.
:enew 新文件.
:w 保存.
:wa 全部保存.
:w <file> 另存为.
:wq 保存并退出.
:x 保存并退出.
:q 退出.
:qa 全部退出.
:q! 强制退出.
文本
esc 切换命令模式 (距离太遥远了,用 Ctrl+C 代替吧).
i 插入模式.
I 在当前行开头插入.
R 替换模式.
a 在光标后插入.
A 在当前行尾部插入.
v Visual 模式按字符选择.
V Visual 模式按行选择.
光标
h 左移光标.
j 下移光标.
k 上移光标.
l 右移光标.
gg 将光标移到文件头部.
G 将光标移到文件尾部.
#G 移动光标到指定行#. 例如: 5G
编辑
u 撤销.
. 重做.
dd 删除当前行.
#dd 删除几行. 例如: 3dd
d^ 删除到行首.
d$ 删除到行尾.
:#,&d 删除 # 到 & 行. 例如: 3,5d
yy 拷贝当前行到剪贴板.
#yy 拷贝 # 行到剪贴板.
y^ 从文件头开始拷贝.
y$ 拷贝到文件尾部.
:#,&y 拷贝 # 到 & 行. 例如: 4,5y
p 在光标后粘贴.
P 粘贴到光标前.
>> 增大缩进.
<< 减少缩进.
== 自动缩进.
查找替换
/# 查找 #. 例如: /printf
?# 反向查找 #.
n 查找下一个.
N 反向查找下一个.
:s/old/new/g 当前行无提示替换.
:%s/old/new/g 无提示替换.
:%s/old/new/gc 确认替换.
:#,&s/old/new/g 从 # 到 & 行无提示替换.
书签跳转
:marks 查看所有书签, 输入 ":<num>" 可跳转.
m<name> 定义书签, 如 ma 在当前行定义名为 a 的书签.
`<name> 跳转到某书签, "`" 为键盘 Tab 上一行第一键.
:jumps 查看所有跳转记录, 输入 ":<num>" 可跳转.
<ctrl> + o 返回上一次跳转处.
<ctrl> + i 和 <ctrl> + o 反向转处.
Ctags
:! ctags -R . 生成 ctags 文件.
<ctrl> + ] 查看函数定义.
<ctrl> + T 返回.
shift + k 查看函数 man 帮助信息.
Code
gg=G 源码格式化
其他
! <command> 执行命令.
:r <file> 插入文件内容.
:r !<command> 插入命令输出结果.
:cd <path> 修改默认工作目录.
分享到:
评论
6 楼 DerekMorgan 2011-06-07  
你可以去github上搜索 “vim, rails”,有很多人会把自己的配置和常用的插件放在上面,你可以参考一下,vim多用用就会了
5 楼 chaostan 2011-06-07  
DerekMorgan 写道
呵呵,如果还有问题的话,可以给我发站内短信,或者其它方式来联系我,随时交流讨论


好的 thanks~
4 楼 DerekMorgan 2011-06-06  
呵呵,如果还有问题的话,可以给我发站内短信,或者其它方式来联系我,随时交流讨论
3 楼 DerekMorgan 2011-06-06  
chaostan 写道
DerekMorgan 写道
的确很棒,总结了很多常用的命令,呵呵,vim最开始上手曲线高,之后编辑效率就高了


谢谢=)

折腾了一个下午才把NERDTree和Rails插件搞定,很好玩

额 你知道如何从编辑窗口切换回Tree目录么 感觉又要用鼠标去点击不太流畅 如果能够用快捷键切换就好了


chaostan 写道
DerekMorgan 写道
的确很棒,总结了很多常用的命令,呵呵,vim最开始上手曲线高,之后编辑效率就高了


谢谢=)

折腾了一个下午才把NERDTree和Rails插件搞定,很好玩

额 你知道如何从编辑窗口切换回Tree目录么 感觉又要用鼠标去点击不太流畅 如果能够用快捷键切换就好了



http://derekmorgan.iteye.com/admin/blogs/1041924

先看看我的这篇文章

在不同窗口移动(这个是我在网上找的,直接用ctrl+j就可以用,很方便哦)
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l

如果你没有在.vimrc中用我上面的配置的话,可以用:

<C-w><C-j>(这条命令的意思就是先按ctrl+w, 在按ctrl+j, 就可以从上面的窗口转移到下面的窗口)
<c-w><c-h>
<c-w><c-k>
<c-w><c-l>

注:上面的这些都是在normal模式下用的, 你可以参考我的博文,把esc映射为jj,唉,我这几天正在学git,想把自己的使用的vim插件和配置文件弄到github上,但是弄得还不太理想,等我过一段有时间弄好了,给你看看
2 楼 chaostan 2011-06-06  
DerekMorgan 写道
的确很棒,总结了很多常用的命令,呵呵,vim最开始上手曲线高,之后编辑效率就高了


谢谢=)

折腾了一个下午才把NERDTree和Rails插件搞定,很好玩

额 你知道如何从编辑窗口切换回Tree目录么 感觉又要用鼠标去点击不太流畅 如果能够用快捷键切换就好了

1 楼 DerekMorgan 2011-06-06  
的确很棒,总结了很多常用的命令,呵呵,vim最开始上手曲线高,之后编辑效率就高了

相关推荐

    vim的基本命令

    ### Vim基本命令详解 #### 一、概述 Vim(Vi IMproved)是Unix/Linux系统中最常用的文本编辑器之一,其强大的功能和高度可定制性使其成为开发人员和系统管理员的首选工具。对于Linux开发人员而言,熟练掌握Vim的...

    vim基本命令

    ### vim基本命令详解 #### 一、vim启动与编辑模式切换 - **vim**: 启动vim编辑器。 - **i**: 进入插入模式,允许用户在当前光标位置输入文本。 - **Esc**: 退出插入模式,返回到普通模式。 #### 二、文件操作 - **...

    vim 基本命令总结表

    本文将对 Vim 的基本命令进行详细的总结,帮助用户更好地掌握这款工具。 1. 打开文件操作: - `vi`:进入 Vim,不加载任何文件。 - `vi filename`:打开名为 `filename` 的文件进行编辑。 - `vi filename1 ...

    VIM命令大全

    ### VIM命令大全知识点解析 #### 一、Vim的工作模式 Vim是一种高度可配置且功能强大的文本编辑器,支持多种模式来进行高效文本编辑。理解这些模式是使用Vim的基础。 - **正常模式(Normal Mode)**:这是Vim启动时的...

    VIM常见命令总结vim常见命令总结

    - VIM有三种基本模式:正常模式(Normal mode),插入模式(Insert mode)和可视模式(Visual mode)。 - **正常模式**:默认模式,可以通过按键`i`, `a`, `o`, `I`, `A`, `O`等进入插入模式。 - **插入模式**:...

    含有vim常用命令的桌面背景图片

    vim不仅保留了vi的基本操作,还增加了许多实用功能,使得它成为程序员和系统管理员的首选工具。vim的设计理念是“模式驱动”,即用户在不同的模式下执行不同的操作,这使得vim具有较高的学习曲线,但一旦掌握,就能...

    一张图记住 Vim 常用命令

    文章目录一、图片二、详解1、Vim 的基本概念2、Vim 的基本操作a、进入 vimb、切换至插入模式c、Insert 的切换d、退出 vi 及保存文件3、命令行模式功能键1). 插入模式2). 从插入模式切换为命令行模式3). 移动光标4...

    Linux&vim常见命令.zip

    本文将详细讲解Linux系统的基本命令以及vim编辑器的使用,旨在帮助初学者快速掌握这两个核心概念。 首先,让我们了解Linux的基础知识。Linux是一种开源的操作系统,它的设计目标是提供一个免费、灵活且强大的平台。...

    vim常用命令.txt

    通过对以上知识点的介绍,我们可以看到`vim`编辑器的强大之处不仅在于其基本的文本编辑功能,还在于其丰富的命令集和高度可定制性。熟练掌握这些命令,可以极大地提高工作效率。此外,`vim`的命令行界面使其成为...

    linux基本命令vim文件等等

    Linux 基本命令和 Vim 编辑器 Linux 操作系统是一种广泛使用的操作系统,具有高效、灵活、免费、开放源代码等特点。 Linux 系统可以安装在各种计算机硬件平台上,如 servers、desktops、laptops、mobile devices 等...

    常用的Vim基本命令

    进入vim时默认为命令模式 这时可以通过命令对文件进行处理 在命令模式下可以通过下文的插入命令等命令进入编辑模式对文本内容进行编辑 在编辑模式下可以按ESC回到命令模式 常用命令 (1)光标移动 h或左方向键:光标...

    vim基本操作

    2. **基础操作熟练阶段**:随着对Vim基本命令的熟悉,用户开始能够高效地执行日常编辑任务。然而,这一阶段的用户可能并未充分利用Vim的强大功能,仅将其视为其他编辑器的替代品。 3. **高级定制与优化阶段**:在这...

    Mac之vim普通命令使用

    本文将详细介绍在Mac环境下如何使用Vim的一些基本命令,帮助您更好地掌握这款编辑器。 #### 二、宏命令 宏功能是Vim的一个强大特性,它允许用户记录一系列的操作,并能够重复执行这些操作。这对于批量处理文本非常...

    vim命令文档

    本文档将介绍一些vim操作的基本命令,帮助初学者快速上手。 ### 1. Vim启动与界面 首次运行Vim,你可以使用以下命令启动编辑器并打开指定文件: ``` gvim file.txt ``` 在UNIX系统中,你可以在命令行中输入此命令...

    vim 命令大全

    通过掌握Vim的基本操作和命令,不仅可以极大地提升文本编辑的效率,还能在日常工作中展现出更为专业的一面。希望每位初次接触Vim的用户都能通过本文的介绍,逐步深入地探索Vim的奥秘,最终成为Vim的熟练使用者。

    Vim 常用命令

    首先,进入Vim的基本命令是`vim [filename]`,这会打开一个名为filename的文件。如果文件不存在,则会创建一个新文件。如果要打开文件的同时跳转到特定的行,可以使用命令`vim +[line number] [filename]`,例如`vim...

    vi/vim常用命令详解,让您轻松在linux环境下编辑/开发程序

    在 vi/vim 中,命令模式是最基本的模式。用户可以输入各种命令来执行特定的操作。在命令模式下,用户可以使用以下命令: * `a`:从命令模式转变为插入模式,字符将被插入到光标位置后面。 * `i`:从命令模式转变为...

Global site tag (gtag.js) - Google Analytics