热门标签 | 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


推荐阅读
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
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社区 版权所有