打印

关于linux vim命令 总结(一)

[复制链接]
198|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
博斯|  楼主 | 2018-9-28 12:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.获取帮助

WHAT PREPEND    EXAMPLE ~

      Normal mode command      (nothing)   :help x

      Visual mode command  v_   :help v_u

      Insert mode command  i_   :help i_<Esc>

      Command-line command  :   :help :quit

      Command-line editing  c_   :help c_<Del>

      Vim command argument  -   :help -r

      Option  '   :help 'textwidth'

      查看错误信息 (nothing)  :help E37



2.命令

编辑命令:     

a 添加字符

A 从行尾添加字符

             i(Insert)       插入

I 从行第一个字符开始插入

x(效仿打字机) 删除一个字符

d(delete) 删除

dd 删除一整行

J 删除回行符(合并两行) 合行后中间加一个空格

gJ 删除回行符,合行后首尾空格不去除

u(undo) 撤销上一步操作

U(undo) 撤销一整行操作(此操作算为一次操作,可用u撤销)

Ctrl+R(redo) 从做撤销的操作

i 在当前位置插入

o 在光标的下面插入新行

O 在光标的上面插入新行

r 替换光标下的字符,加上计数器表示连续替换多个字符为一个字符

R 替换整行字符

. 重复上一次更改

p 粘贴默认寄存器中的内容,可用计数器

y 复制选中内容到默认寄存器

~ 切换当前字母大小写

g~ 切换字母大小写

gU 将字母切换成大写

gu 将字母切换成小写

g~~ g~g~ 切换整行字母大小写

gUU gUgU

guu gugu

> 在visual模式下将选中的内容右移,前面填充空格

< 在visual模式下将选中的内容左移,前面的空格删除

:{range}read patch 在当前行的下面插入文件patch中的内容,如果指定了range 则



插入到range中最后的一行下面,这里的range可以用特殊的行号0

:{range}read !{command} 将命令的输出插入到文件中



gq 格式化所选文本

:[range]m[ove] {address} 把选中的文本移动到address下面

:[range]co[py] {address} 把选中的文本复制到address下面

等价的:

x=dl

X=dh

D=d$

C=c$

s=cl

S=cc



位移命令:

  在普通模式下 hjkl 代表 左下上右

w 往后跳一个单词,光标停在第一个字母上

b 往前挑一个单词,光标停在第一个字母上

e 往后跳一个单词,光标停在最后一个字母上

ge 往前跳一个单词,光标停在最后一个字母上

$ 跳到行尾,可用计数器向下跳多行

0 跳到行首算上空白

^ 跳到行尾不算上空白,加上计数器没有效果

f 向后查找字符,用计数器表示查找到第几个匹配字符

F 向前查找字符,用计数器表示查找到第几个匹配字符

t

T

; 跳到下一个匹配的字符

, 跳到上一个匹配的字符

% 匹配括号 前面加数字表示跳转到文件的百分比

G   前面加数字跳转到明确的行,不加数字表示跳转到文件的最后一行

gg 跳到文件的第一行

H(Home) 跳到屏幕的最上方一行

M(Middle) 跳到屏幕的中间一行

L(Last) 跳到屏幕的最下面一行

CTRL-U(up) 将屏幕向上滚动半个屏幕的文本

CTRL-D(down) 将屏幕向下滚动半个屏幕的文本

CTRL-E 将文字向上提一行

CTRL-Y 将文字向下拉一行

CTRL-F 将屏幕向下滚动一屏

CTRL-B           将屏幕向上滚动一屏

CTRL-]   跳转到标签内部

CTRL-T   跳转到父标签

  CTRL-O     跳转到更老的jump点

  CTRL-I     跳转到更新的jump点,与<TAB>功能相同



` 跳转到某标签的光标位置

' 跳转到某标签的行首

文本对象:(很像计数器+位移命令)

a     包括前后空格

       i                不包括前后空格

w 单词

s 句子

p 段落

其他命令:



------------------多文件-------------------------

vim one.c two.c three.c   通过VIM同时编辑三个文件

:next  编辑下一个文件  可以用计数器 :2next

:wnext  保存并编辑下一个文件

:args  显示打开VIM时编辑的文件列表

:previous  编辑上一个文件 可以用计数器

:wprevious  保存并编辑上一个文件

:first  编辑第一个文件(没有w版本)

:last  编辑最后一个文件(没有w版本)

:args *.txt  从新编辑文件列表,未保存文件将提示,可以用通配符,可以用强制符



-------------------多窗口----------------------------------

vim -o one.txt two.txt 水平多个窗口打开多个文件

vim -O one.txt two.txt   垂直多个窗口打开多个文件

:all 为列表中的文件各开一个窗口(可vertical)

:split 上下分割当前窗口,在上面打开新窗口

:vsplit 左右分割窗体,在左边打开新窗口

:split two.c 在新窗口编辑文件

:3split alpha.c 设定新窗口的高度

:new 创建新窗口创建新文件在当前窗口上面

:vnew 创建新窗口创建新文件在当前窗口左面

:vertical new 等同于vnew

:vertical 加在任何分割窗口的命令前面,使其垂直分割

CTRL-W w 窗口切换

CTRL-W CTRL-W 和CTRL+W w一样

:close 关闭窗口

:only 关闭其他所有窗口

CTRL-W + 增大窗口,可以用计数器

CTRL-W - 减小窗口,可以用计数器

15CTRL-W _ 指定当前窗口高度为15

CTRL-W _ 最大化当前窗口

CTRL-W h move to the window on the left

CTRL-W j move to the window below

CTRL-W k move to the window above

CTRL-W l move to the window on the right

CTRL-W t move to the TOP window

CTRL-W b move to the BOTTOM window

CTRL-W H move window to the far left

CTRL-W J move window to the bottom

CTRL-W K move window to the top

CTRL-W L move window to the far right

:qall 退出所有窗口

:wall 存储所有文件

:wqall 存储并退出所有文件

:qall! 放弃存储退出所有文件



------------------------文件对比--------------------------

vimdiff a.c b.c 对比两个文件的差别

zc 关闭折叠

zo 打开折叠

-----------------------tab栏------------------------------

gT 反向的gT

:tab split 通过一个新tab打开当前文件

:tab help

:tabonly 除了当前的tab其它的都关闭

-----------------------GUI选项----------------------------

:set guioptions 设置GUI的选项 T代表toolsbar l代表左滚动条

:behave xterm 把鼠标设置成Xterm模式

:behave mswin 把鼠标设置成mswin模式

'mouse' in which mode the mouse is used by Vim

'mousemodel' what effect a mouse click has

'mousetime' time between clicks for a double-click

'mousehide' hide the mouse while typing

'selectmode' whether the mouse starts Visual or Select mode

:set selectmode+=mouse 通过鼠标选择文本进入选择模式,选择模式下输入字符会

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

412

主题

412

帖子

0

粉丝