zoukankan      html  css  js  c++  java
  • Linux-vim使用操作大全

    1. vim简介

    Vi是Vim的早期版本,现在我们使用的Vim(Viimproved)是Vi的增强版。
    vim是文本编辑工具软件,一个基于图形化编辑工具,使用简单且功能强大。增加了一些正则表达式的查找、多窗口的编辑等功能,使得Vim对于程序开发来说更加方便
    ps: vi 内置在Linux系统中,是vim的简化版编辑器,vim需要进行安装使用

    2. vim的三种模式说明

    三种模式:命令模式,编辑模式,底行模式

    命令模式:

    Vim 启动后,默认进入命令模式,在任何模式下,都可以按 Esc 键返回到命令模式,可以多按几次 Esc 键,保证顺利返回到命令模式。
    在此模式下,可以使用上、下、左、右键进行光标移动,也可以键入不同的命令完成选择、复制、粘贴、删除等操作。

    编辑模式

    在编辑模式下可以编辑文本内容。在命令模式下按 i、 a 、o等键可以进入编辑模式,在此模式下可以输入文本,但命令执行后的字符插入位置不同

    底行模式

    命令模式下按:键进入底行模式。这时光标会移到屏幕底部,在这里可以输入相关指令保存修改或退出 Vim,也可以设置编辑环境、寻找字符串、列出行号等。指令执行后会自动返回命令模式。

    3. vim编辑器操作

    vim编辑器相当于Windows的notepad++编辑器,相比vi的功能强大,注意点:centos7使用vi实测调用了是vim编辑器

    命令模式移动光标方式

    # 纵向移动
    G			# 快速移动到文本行尾
    gg			# 快速移动到文本行首
    2gg			# 快速移动第二行
    2G			# 快速移动第二行
    shitf+ 0	# 快速移动空行
    
    # 横向移动  
    $			#快速移动到一行的行尾
    0 或 ^		#快速移动到一行的行首
    

    命令模式复制内容方式

    dd			# 默认剪切一行内容
    2dd			# 从当前光标往下剪切2行内容
    yy			# 默认复制一行内容  copy
    2yy			# 从当前光标往下复制2行内容
    p			# 从当前光标下黏贴一遍内容
    2p			# 从当前光标下黏贴2遍内容
    u			# 撤销文本的操作
    ctrl+r		# 撤回文本的操作
    dG			# 表示从光标位置到文本末尾内容删除
    r			# 表示替换单个字符
    

    如何命令模式进入编辑模式

    i			# 表示当前光标位置前插入,进入编辑模式
    a			# 表示当前光标位置后插入,进入编辑模式
    o			# 表示当前光标位置另起下一行插入,进入编辑模式
    O			# 表示当前光标位置另起上一行插入,进入编辑模式
    I			# 表示当前光标位置所在行的行首,进入编辑模式
    A			# 表示当前光标位置所在行的行尾,进入编辑模式
    C(大写)		        # 表示从光标所在位置到行尾内容剪切,进入编辑模式
    cc			# 表示剪切光标所在行,进入编辑模式
    

    末行模式命令操作

    :			# 从命令模式进入末行模式
    :q			# 未编辑时,退出
    :q!			# 强制退出vim
    :wq			# w 保存内容
    
    :set nu		        # 显示行号
    :set nonu	        # 取消显示行号
    
    /xxx		        # /表示从当前光标下搜索内容		按n 向下继续搜索 
    ?xxx		        # ?表示从当前光标下搜索内容		按n 向下继续搜索 
    
    /xxxc		        # 搜索内容后加c 表示搜索忽略大小写
    :set ic		        # 表示在此次编辑,搜索忽略大小写
    :set noic	        # 表示在此次编辑,取消忽略大小写
    

    ps:vim搜索内容高亮显示搜索的内容信息

    如何取消vim搜索后的高亮显示?

    1. 搜索文本没有的内容信息

    2. 输入指令 :noh

    3.vim特殊用法

    快速的移动多行内容

    格式是 :1,3move4 表示把第一行到第三行的信息移动到第四行内容另起一行

    快速的复制多行内容到某一行

    格式是 :1,3cpoy4 表示把第一行到第三行的信息复制单四行内容另起一行

    文件信息进行替换内容

    vim替换格式是 :%s# 替换的内容 # 替换成的内容 #g

    如:%s#oldboy#oldgirl#g # 表示把文件中的oldboy全部替换修改为oldgirl
    替换参数说明

    % 表示文件的全部信息

    s 表示substitute 替换 %s 表示全部信息进行替换

    ### 表示替换内容和修改内容的分隔符,可以是任意三个相同的符号。比如 %s/oldboy/oldgirl/g

    g 表示 global(全局的),把整行符合替换条件的内容进行替换

    具体操作

    [root @controller /old ]# vi oldboy.txt 		# 文件原有的内容
    oldboy
    oldgirl
    olddog
    [root @controller /old ]# vi oldboy.txt 
    aldbay
    aldgirl
    alddag
    ~                                                                                                                    
    ~                                                                                                                                                                                                                                  
    :%s#o#a#g			表示把文件全部字母o替换为a	g表示把整行字母o替换为字母a
    
    [root @controller /old ]# vi oldboy.txt 
    oldbay
    oldgirl
    olddag
    ~                                                                                                                    
    ~                                                                                                                                                                                                                                
    :%s#a#o#			表示把文件每行首个字母a替换为字母o
    

    批量的编辑修改多行内容信息

    如何快速的四行内容进行注释(在每行开始添加符号 #)

    第一步:进入批量编辑的视图模式

    按键盘的 Ctrl + v 进入批量模式,在底行出现标志信息 -- VISUAL BLOCK -- (可视块)

    第二步:选择需要批量编辑的行:按方向上下进行选择编辑的行

    第三步:进行编写内容

    第四步:退出批量编辑模式,自动补全其他选择的行:按键盘的 esc 退出批量编辑模式

    如何批量删除文件多行信息

    第一步:进入批量编辑的视图模式

    按键盘的 Ctrl + v 进入批量模式,在底行出现标志信息 -- VISUAL BLOCK -- (可视块)

    第二步:选择需要批量编辑的行

    按方向上下进行选择行,按方向左右选择删除信息

    第三步:直接删除信息:按键盘的 字母d 或字母x 直接删除

    问题:如何在test.txt每行前添加12345?

    方法一:利用视图模式批量编辑文件

    方法二:vim的替换信息方法

    方法三:三剑客命令sed???

    [root @compute /old ]# sed 's#o#12345o#' test.txt

    12345oldboy

    12345oldgirl

    12345olddog

    4.vim查看目录数据

    [root @compute / ]# vim old

    " ============================================================================

    " Netrw Directory Listing (netrw v149)

    " /old

    " Sorted by name

    " Sort sequence: [/]$,<core%(.d+)=>,.h$,.c$,.cpp$,~=*$,*,.o$,.obj$,.info$,.swp$,.bak$,~$

    " Quick Help: :help -:go up dir D:delete R:rename s:sort-by x:exec

    " ============================================================================

    ../

    ./

    oldboy/

    oldboy.txt*

    ago.txt

    services

    xuanxuan.txt

    .swp

    ~

    "old" is a directory

    显示信息说明: :help -:go up dir D:delete R:rename s:sort-by x:exec
    F1 查看帮助

    - 返回上级目录

    回车 选择子目录,回车可以进入子目录。选择文件,直接编辑。

    D 键盘上下选择删除文件

    R 文件重命名

    s 表示文件名称进行排序。默认按照文件名称排序,按一次:按照文件修改时间排序。按二次:按照文件size数据大小排序。按三次:默认名称排序

    x 不明白???

  • 相关阅读:
    如何在Android平台下进行Socket通信
    通过 按钮 bundle 传过来 变换Q币图片
    Android中focusable属性的妙用——底层按钮的实现
    Android与服务器交互的简单例子
    Microsoft Office SharePoint Server 2007介绍
    mathtype使用
    VS2010快捷键
    xxd
    gas 多文件组织
    612 根目录下vmlinux , compressed下的vmlinux,boot下的Image、zImage
  • 原文地址:https://www.cnblogs.com/xuanxuan360/p/13370043.html
Copyright © 2011-2022 走看看