vi 操作 (持续更新)

在命令状态,:s/old/new/g  替换光标所在的行。  :%s/old/new/g  替换所有的
:r filename  引入外部的文件

H          M        L       G 
开始   中间    底部   末尾

 列间移动(重要)  gm,移动到行的屏幕的中间

 

gd  ,跳到变量的定义处


vi 操作二进制文件

%!xxd
首先,打开二进制文件时要加参数"-b",不然会报文件第一行错误.
$vim -b tuxcmd
 打开文件后,默认是文本格式的,我们用":%!xxd"可以切换到十六进制编辑.
:%!xxd
   是不是和utaredit很像呀?还可以加上参数-c来设置每行显示多少字节,比方用":%!xxd -c 16",就会显示成16字节一行.
   如果用":%!od"命令,则会隐藏左侧的文本列.
   不过,有一点不爽的就是改变文本列,不会改变16进制里的数据,只能手动在16进制列做修改.在文本列里的修改是不会生效的.
  注意:修改完成后,不要保存,要再用":%!xxd -r"切换成文本状态格式再保存.
:%!xxd -r

  • ma:在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
  • `a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
  • `.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。



<action>a<object> 和 <action>i<object>

● action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。

● object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。

假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 的位置。

● vi" → 会选择 foo.

● va" → 会选择 "foo".

● vi) → 会选择 "foo".

● va) → 会选择("foo").

● v2i) → 会选择 map (+) ("foo")

● v2a) → 会选择 (map (+) ("foo"))

ci  删除,,yi复制

例子:

((map) + (+) ("foo  dsfdsfdsa"))



vim 高级使用技巧 自动生成数字编号的列表


要在vim中生成类似如下列表:
    string1 2string string3string
    string2 3string string4string
    string3 4string string5string
    string4 5string string6string
    string5 6string string7string
    string6 7string string8string
    string7 8string string9string
按如下步骤即可:
    1.打开vim 输入第一行string1 2string string3string 按esc键
    2.按qa--------->用寄存器a开始记录
    3.按Y,然后按p--------->拷贝一个副本
    4.分别把鼠标移到副本这一行string1 2string string3string的数字上并分别按ctrl+a,
       此时副本这行变成string2 3string string4string---------->ctrl+a增加计数
    5.按q停止记录
    6.count@a---------->其中count为要生成的行数,在本例中为5@a

另:
    命令寄存器 "a 到 "z 或者 "A 到 "Z 
    Vim 只有在你指定的时候才使用这些寄存器。指定为小写字母时替换原来的内容,指定为
    大写字母时附加到原来的内容

保存时没有权限时用如下的命令
:w !sudo tee %


vim tree 的操作
1. 在vim dir 之后, vi会把目录及内容列出来,,把光标移动到一个具体的文件下,按o,就可以垂直打开一个文件。 按v,可以水平打开一个文件
2. 在vi列出的目录上,按cc,可以改变vi 根shell的路径,然后:sh ,可以到达对应的目录。

vim tab
:tabnew  filename
在vim窗口打开一个tab
gt/gT 切换tab

vim session
:mksession!  保存当前的工作区, 会在当前路径下生成Sesson.vim文件   下次使用时用vim -S   Load 进行

vim find
set path=./**      find:Test.java

vimgrep

:vimgrep /Import/gj **
在vim内查找Import ,找到后不跳转到第一个文件。  g 指允许重复  j 是不跳转。如果要跳转,则不用j.
vimgrep 查找的数据,放在quickList中, :cw 打开quickList ,

quickList,是存放数据缓存的地方,如make 的信息,grep的信息。 可以使用:cn 跳到下一个。

vim 快速打开最近的历史文件

:ls  当前缓存的文件
使用  e #编号     打开
或者  bro ol     最近打开的所有的文件, 按q退出时,可以传一个编号,打开文件

vim make 命令
set makeprg=mvn\ clean\ compile
输入  make 可以用mvn编译文件

在命令mode, ctrl + f , 打开最近使用过的command-line history.



vim 在配置
在.vimrc 中添加
set ts=4
set expandtab
set autoindent
set encoding=utf-8
这样把tab 转成空格。回车之后,也是4个空格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值