热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux编辑文件命令vim,linux中vim是什么意思

vim-vi增强版。文本编辑器格式:vim[options][file..]说明:如果file存在,文件被打开并显示内容,如果文件不存在,当编辑后第一次存盘时创建它[o


vim - vi扩展版。 文本编辑器


格式: vim [options] [file .]


说明:如果文件存在,将打开该文件并显示其内容。 如果文件不存在,将在编辑后第一次保存到磁盘时创建


[选项]一般选项:


vim [num] :直接进入编辑文件的第num行


vim :直接进入最后一行


vim /PATTERN :模式PATTERN直接跳转到第一个匹配的行


vim -m :以只读方式打开文件


vim-d文件1文件2 .打开和编辑多个文件


虚拟机的三种模式:


命令模式:默认模式、光标移动、文本剪切/粘贴等


输入(编辑)模式:修改文本


最后一行(扩展)模式)保存、退出、检索等


模式切换:


1、命令式to输入模式


I :在当前光标所在的位置输入:


I :光标当前所在行的开头


a :在光标所在位置的后面输入


答:在光标当前所在行的行尾输入


o :在光标所在行的下方添加空行的输入


o :在光标所在行的上方添加空行输入


2、输入模式至指令模式:


按ESC键


3、指令模式to末行模式:




4、最后一行模式to命令模式


按ESC键两次


命令模式的常规快捷键


1、光标移动


字符间跳转:


(h )左)右)下) k )上


#[h | l | j | k ] :跳#个字符


单词键跳


w :跳到下一个单词的开头


b :跳到当前或上一个单词的开头


e :当前或下一个单词的词尾


当前页面跳转:


h :当前屏幕的顶部


l :当前屏幕的底部


zt :将光标所在的行移动到屏幕顶部


zz :将光标所在的当前行移动到屏幕中央


zb :将光标所在的行移动到屏幕底部


内联移动:


0 :数字0绝对行头


^ :第一个非空白字符


$ :绝对行尾


行距移动:


#G跳至#行


#gg跳至#行


g :最后一行


1g :第一行


g :第一行


语句之间的移动:


) :




在段落之间移动:


{


}


翻页操作:


Ctrl f :向文件末尾翻页


Ctrl b :向文件的开头翻画面


Ctrl d :向文件末尾半屏


Ctrl u :朝文件开头翻半个画面


2、编辑操作


文字编辑


或DEL键:删除光标所在的字符


#x :删除从光标所在处开始的#个字符


xp:交换光标所在的字符和之后的字符的位置


~ :大小写转换


j :删除当前行末尾的换行符


替换命令:


r )通过替换光标所在的字符,输入一个字符进行替换,可以用于单词拼写错误


切换到替换模式


删除命令


d :删除命令


与各光标跳转指令组合使用


d$ :删除光标所在位置到行尾的所有字符,包括光标所在的字符


d^ :将光标位置删除到行首的所有字符。 不包括光标。


d0 :删除在行首


dw :删除到后面第一个单词的开头


de :删除到后面第一个单词的词尾


数据库:删除到前面第一个单词的开头


DD :删除一行


#dd :删除光标所在位置的下n行


dG :在文档末尾删除


dgg :在文档开头删除


(c )变更、删除后,直接进入插入模式


c$ :删除光标所在位置到行尾的所有字符。 也包括光标所在的字符


c^ :将光标位置删除到行首的所有字符。 不包括光标。


c0 :删除到行首


抄送:删除一行


#cc :删除光标所在位置的下n行


y:yank,复印


YY :复制一行


#YY:# :复制行


p :用p:paste、yy复制的,或者用dd粘贴删除的


复制或删除的是整行


p :粘贴在光标所在行的下方


p :粘贴在光标所在行的上方


复制或删除的是非整数行


p :粘贴在光标所在字符的后面


p :粘贴在光标所在的字符之前


撤消编辑:


u :还原


#u


u :将光标置于此行后,撤消此行的所有更改


撤消:


Ctrl r是与u相反的意思


重复前面的命令:'.'

>重复签一个操作N次:"N."

命令模式特殊用法:

100iwang[ESC]粘贴“wang”100次

Command:

y复制、d删除、gU变大写、gu变小写

例如:0y$命令意味着:

0->先到行头

y->从这里开始拷贝

$->拷贝到本行最后一个字符

ye从当前位置拷贝到本单词的最后一个字符

di  "光标在" "之间,则删除这行中" " 之间的内容,可以是多种符号" ' () [] {} 等等

yi   光标在()之间,则复制()之间的内容

vi[  光标在[]之间,则选中[]之间的内容

dtx    删除字符直到遇见光标之后第一个x字符

ytx      复制字符直到遇见光标之后的第一个x字符

末行模式(扩展模式):

1、范围定界

:start,end

# 具体第#行,例如2表示第二行

1,2          第1到第2行

10,19      10到19行

10,+9   从第10行向后走9行

.             表示当前行

$            最后一行

$-1         倒数第二行

/pat1/,/pat2/  第一次被pat1匹配到的行,到第一次被pat2匹配到的行

#,/pat/                  从#行开始到第一次被pat匹配到的行

%全文

注意:如果不用地址定结符,只检查光标所在行

编辑命令:

d 删除

y 复制

w /path/to/somewhere :将范围内的行另存至指定文件中

r /path/to/somefile:把somefile文件内容插入到地址定界后面

例如 10r xxx  将xxx文件插入到第十行后面

!command     执行命令

r !命令     #将命令执行结果插入,如 r !hostname 将hostname执行结果插入进入文档

2、查找

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件尾部查找

n:与命令同方向

N:与命令反方向

3、*查找替换:

:地址定界s/查找模式(正则)/替换为内容/gi

要查找的内容:可使用模式

要替换的内容:不能使用模式,但是可以使用\1,\2 等后向引用副号;还可以使用&引用前面查找到的整个内容

修饰符:

g:全局替换,一行中出现多次也替换

gc:全局替换,每次替换前询问

i:不区分大小写

&:用于在替换为的内容部分中引用前面匹配到的所有内容

定制vim工作特性:

配置文件:永久有效

全局:/etc/vimrc

个人:~/.vimrc

扩展模式:当前vim进程有效

(1) 行号

显示:set number, 简写为set nu

取消显示:set nonumber, 简写为set nonu

(2) 忽略字符的大小写

启用:set ic

不忽略:set noic

(3) 自动缩进

启用:set ai

禁用:set noai

(4) 智能缩进

启用:smartindent简写set si

禁用:set nosi

(5) 高亮搜索

启用:set hlsearch

禁用:set nohlsearch

(6) 语法高亮

启用:syntax on

禁用:syntax off

(7) 显示Tab和换行符^I 和$显示

启用:set list

禁用:set nolist

(8) 文件格式

启用windows格式:set fileformat=dos

启用unix格式:set fileformat=unix

简写:set ff=dos|unix

(9) 设置文本宽度

set textwidth=65 (vimonly)

set wrapmargin=15

(10) 设置光标所在行的标识线

启用:set cursorline,简写cul

禁用:set no cursorline

(11) 复制保留格式

启用:set paste

禁用:set nopaste


推荐阅读
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • Iamtryingtocreateanarrayofstructinstanceslikethis:我试图创建一个这样的struct实例数组:letinstallers: ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
拍友2502926823
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有