vi使用总结(更新中)

本文介绍了Vi编辑器的基本操作,包括文本替换、查找、光标移动、删除、修改、字符移动、复制粘贴等命令,并提供了保存和退出的方法。


06-8-16 :vi的文本替换

(1)替换从第n行到第m行的文本
:[n],[m]s/[需要替换的文本]/[替换文本]/g

(2)替换整个文本种的需要替换的文本
:%s/[需要替换的文本]/[替换文本]/g

(3)替换从当前光标开始处,到第n行的需要替换的文本
:.,[n]s/abcd/dbde/g


06-8-17 vi 中的查找命令
(1):/的用法
  <1>从光标向后查找相应字符串[STR]
  :/[STR]
  <2>从光标向后查找句首含有[STR]的行
  :/^[STR]
  <3>查找后光标的移动,移到从光标起到下x个找到的字符的位置
  xn
  <4>移动到找到的第一个匹配的位置
 
  <5>光标移动到找到模式的最后一个位置


(2)?string
  <1>光标所在处向前查找相应的字符串
   :?[STR]
  <2>


06-8-18 vi中光标移动命令
   <1>上下左右移动x行:  也就是右手在键盘上放置的位置部分
    xk,xj,xh,xl   其中x是数字如1k,2j,3h,4l 分别是向上下左右移动1,2,3,4行
   <2>跳到指定行数
    nG 其中n是行数
   <3>报告光标所在的行数和列数
    Ctrl+G
   <4>使光标向前或向后跳一个单词
    w,b
   <5>使光标移动到行首/尾
   
   <5>在屏幕中移动的命令
    H 跳到第一行
    M 跳到中间一行
    L 跳到最后一行


06-8-18 vi中的删除命令

(1)删除当前一个字符
   <1>删除当前字符,光标停留在原字符处
   dl
   <2>删除当前字符,光标停留在光标前一个字符
   x

(2)删除一行中的字符
   <1>删除光标所在的一行
    dd
   <2>删除从光标起前一个字符到行首的所有字符
    d0 或 d^
   <3>删除从光标处到行尾的所有字符
    D 或 d$
   <4>删除从光标起到一行开始处的所有字符
    d 0
    d ^(不包括空格和tab键)
   <5>删除从光标起的后5行内容
    5dd
 
(3)删除单词
   <1>删除(改变)当前单词(d->delete,c->change)
    dw (cw)
   <2>删除光标后三个单词
    3dw
   <3>删除从光标起的三个单词末尾
    d3w
   <4>删除光标前x个单词
    dxb
   <5>删除到某个以空格作为分隔符的单词的结尾位置
    dW
   <6>删除到某个以空格作为分隔符的单词的开始位置
    dB
   <7>删除到前面7个以空格作为分隔符的单词的开始位置
    d7B

(4)删除屏幕中的字符
   <1>删除直到屏幕上第一行的内容
    dH
   <2>删除到屏幕所在文本的最后一行
    d L
(5)删除缓冲区中的区域    
   <1>删除从光标到结尾处的所有行
    dG
   <2>删除从光标位置到工作缓冲区开始处所有行(包括光标所在行)
    d1G

(5)删除特定条件下的字符
   <1>删除当前行直到下一个字符“ c”所出现位置之间的内容
    d tc
   <2>删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
    d fc

(6)段落的删除
   <1>删除到某个语句的结尾位置
    d)
   <2>删除到第四个语句的结尾位置
    d 4)
   <3>删除到某个语句的开始位置d
    d(
   <4>删除到某个段落的结尾位置
    d }
   <5>删除到某个段落的开始位置
    d {
   <6>删除到当前段落起始位置之前的第7个段落位置
    d 7 {

08-19  vi 中的修改操作命令(change)

(1)字符的修改
    <1>修改当前字符
     cl
    <2>

<2>单词的修改
   <1>修改到某个单词的结尾位置
    c w
   <2>修改到第三个单词的结尾位置
    c 3 w
   <3>修改到某个单词的开始位置
    c b
   <4>修改到某个以空格作为分隔符的单词的结尾位置
    c W
   <5>修改到某个以空格作为分隔符的单词的开始位置
    c B
   <6>修改到前面7个以空格作为分隔符的单词的开始位置
    c 7 B
(3)行的修改
   <1>修改到某行的开始位置
    c 0
   <2>修改当前行
    c c
   <3>修改到某一行的结尾
    C


c) 修改到某个语句的结尾位置
c 4) 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c } 修改到某个段落的结尾位置
c { 修改到某个段落的开始位置
c 7 { 修改到当前段落起始位置之前的第7个段落位置
c tc 修改当前行直到下一个字符c所出现位置之间的内容


5 c c 修改从当前行所开始的5行内容

重复上一次修改!

表8-4 替换命令
替换命令操作
s 将当前字符替换为一个或多个字符
S 将当前行替换为一个或多个字符
5 s 将从当前字符开始的5个字符替换为一个或多个字符
vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串

08-19  vi中移动字符的命令
 (1)字母的交换
  <1>交换光标所在字母和下一个字母
   xp

 (2)行的移动
  <1>上下两行调换
   ddp
  <2>将上下两行合并
   J
 
08-19  vi中的复制粘贴命令
(1)同一文件中的操作
   <1>复制粘贴一行的命令
    yy 复制光标所在行 p 粘贴到光标位置
   <2>从当前位置复制到行尾
    y$
    p是粘贴命令
   <3>复制向下x行
    xyy
   <4>复制光标所在列到第一列的所有资料
    y1G
   <5>复制光标所在列到最后一列的所有资料
    yG
   <6>粘贴
    p 粘贴在光标下一行
    P 则为贴在光标上一行!

(2)


08-19 vi 的保存和退出

  w 将编辑的资料写入硬盘档案中(常用)
  :w! 若档案属性为『只读』时,强制写入该档案
  :q 离开 vi (常用)
  :q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
  :wq 储存后离开,若为 :wq! 则为强制储存后离开(常用)
  :e! 将档案还原到最原始的状态!
  ZZ 若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!
  :w [filename] 将编辑的资料储存成另一个档案(类似另存新档)
  :r [filename] 在编辑的资料中,读入另一个档案的资料。亦即将 『filename』这个档案内容加到光标所在行后面
  :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
  :set nonu 与 set nu 相反,为取消行号!
  n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
  :! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如[ :! ls /home ]
 

<think>好的,我现在需要帮助用户解决在Docker容器内无法使用vi命令的问题。首先,我得回想一下用户提到的引用内容,看看有没有相关的信息可以借鉴。根据引用[3],用户进入容器后尝试安装net-tools,使用的是yum install命令。这说明容器可能是基于CentOS或类似的系统,使用yum作为包管理器。 首先,用户的问题是无法使用vi命令,这可能是因为容器内没有安装vim或vi。通常,Docker官方镜像为了保持轻量,可能不会包含这些工具。因此,解决方法是安装vim。不过,安装前需要确保容器内的包管理器可用,比如yum或apt,这取决于容器的基础系统。 用户提供的引用[3]中的例子是在容器内执行yum install -y net-tools,所以这里同样可以用yum来安装vim。需要提醒用户进入容器后,先更新包列表,然后安装vim。不过,可能需要确认容器是否有网络连接,否则安装会失败。 另外,用户可能在容器中使用的是精简版镜像,比如Alpine,这时包管理器是apk,安装命令是apk add vim。所以需要区分容器的基础镜像类型。不过根据引用[3]中的yum,应该是以CentOS或RHEL为基础的镜像。 还有一种情况是,用户可能没有合适的权限,但根据引用[3]中的命令,用户是以root身份进入容器的,所以权限应该没问题。不过,如果容器不是以root运行,可能需要加上sudo,但docker exec默认是root,所以这里应该不需要。 另外,用户可能希望将安装好的vim保存到镜像中,避免每次进入容器都重新安装。这时候可以建议用户编写Dockerfile,在构建镜像时就安装vim,这样更高效。 还需要注意,某些镜像可能没有配置正确的软件源,导致安装失败,这时候可能需要更换源或者检查网络设置。但用户的问题可能比较简单,直接安装即可。 总结步骤应该是:进入容器,更新包管理器,安装vim,测试是否成功。另外提供Dockerfile的方法作为长期解决方案。</think>要在Docker容器内启用vi命令,可以通过以下步骤操作: 1. **进入容器交互模式** ```bash docker exec -it 容器名/容器ID bash # 引用[3]的交互模式进入方法 ``` 2. **安装vim编辑器** ```bash # 针对CentOS/RHEL/Alpine系统: yum update && yum install -y vim # 需要网络连接和root权限,引用[3]的yum安装模式 # 或针对Ubuntu/Debian系统: apt-get update && apt-get install -y vim # Alpine系统: apk add vim ``` 3. **验证安装** ```bash vi --version ``` **永久解决方案**:在Dockerfile中添加安装命令 ```dockerfile FROM 基础镜像 RUN apt-get update && apt-get install -y vim # 或对应系统的安装命令 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值