Ubuntu vi文本编辑器

vim

vim = vi improved

  • vim 是从 vi 发展出来的一个文本编辑器,支持代码补全、编译及错误跳转 等方便 编程的功能特别丰富。

vi

  • vi 是Visual interface 的简称,是 Linux 中最经典的文本编辑器
  • vi 的特点:
    • 没有图形界面的功能强大的编译器
    • 只能是编辑 文本内容,不能对字体、段落进行排版
    • 不支持鼠标操作
    • 没有菜单
    • 只有命令
1.通过 vi 打开和新建文件
  • 在终端中输入vi在后面跟上文件名即可

    vi 文件名

  • 如果文件已经存在,会直接打开该文件

  • 如果文件不存在,会新建一个文件

打开文件定位到指定行
可以使用以下命令打开文件

vi 文件名 + 行数

如果只带上 + 二不指定行号,会直接定位到文件末尾

2.异常处理
  • 如果 vi 异常退出,在磁盘上可能会保存有交换文件
  • 下次再使用 vi 编辑该文件时,会看到以下屏幕信息,按下字母 d 可以删除交换文件即可

提示:按下键盘时,注意关闭输入法
在这里插入图片描述

3. vi 的三种工作模式

vi 有三种基本工作模式:

(1)命令模式
  • 打开文件首先进入命令模式,是使用 vi 的入口
  • 通过命令对文件进行常规的编辑操作
  • 在其他图形编辑器下,通过快捷键或者鼠标实现的操作,都在命令模式下实现
(2)末行模式——执行 保存、退出等操作

-要退出 vi 返回到控制台,需要在末行模式下输入命令

  • 末行模式是 vi 的出口
(3)编辑模式——正常的编辑文字

在这里插入图片描述

末行模式命令

命令英文功能
wwrite保存
qquit退出,如果没有保存,不允许退出
q!quit强行退出,不保存退出
wqwrite & quit保存并退出
x保存并退出
4.文本编辑移动
(1)上、下、左、右
命令功能手指
h向左食指
j向下食指
k向上中指
l向右无名指

在这里插入图片描述

(2)行内移动
命令英文功能
wword向后移动一个单词
bback向前移动一个单词
0行首
^行首,第一个不是空白字符的位置
$行尾
(3)行数移动
命令英文功能
gggo文件顶部
Ggo文件末尾
数字gggo移动到 数字 对应行数
数字Ggo移动到 数字 对应行数
:数字移动到 数字 对应行数
(4)屏幕移动
命令英文功能
Ctrl + bback向上翻页
Ctrl + fforward向下翻页
HHead屏幕顶部
MMiddle屏幕中间
LLow屏幕底部
(5)段落移动
  • vi 中使用 空行来区分段落
命令功能
{上一段
}下一段
(6)括号切换
命令功能
%括号匹配及切换
(7)标记
  • 在开发时,某一块代码可能需要稍后处理
  • 此时先使用 m 增加一个标记,这样可以在需要时,快速地跳转回来 或者 执行其他编辑操作
  • 标记名称 可以是 a ~ z 或者 A ~ Z之间的任意一个字母
  • 添加了标记的 行如果被删除,标记同时被删除
  • 如果 在其他行添加了相同名称的标记,之前添加的标记也会替换掉
命令英文功能
mxmark添加标记x, x 是 a ~ z 或者 A ~ Z之间的任意一个字母
‘x直接定位到标记 x 所在位置
标记使用方法

在目标行 输入命令

m +  标记名称[a ~ z 或者 A ~ Z之间的任意一个字母]

当光标切换到其他行输入

‘ + 标记名称

可以定位到标记行所在的位置

5.选中文本(可视模式)
  • 在 vi 中要选择文本,需要先使用 Visual命令切换到可视模式
  • vi 中提供了三种可视模式,可以方便程序员选择 选中文本的方式
  • 按 ESC 可以放弃选中,返回到命令模式
命令模式功能
v可视模式从光标位置开始按照正常模式选择文本
V可视行模式选中光标经过的完整行
Ctrl + v可视块模式垂直方向选中文本
  • 可视模式下,可以和移动命令连用。

ggVG 能够选中所有内容。

6.撤销和恢复撤销
命令英文功能
uundo撤销上次命令
CTRL + rredo恢复撤销的命令
7.删除文本
命令英文功能
xcut删除光标所在字符,或者选中文字
d(移动命令)delete删除移动命令对应的内容
dddelete删除光标所在行,可以ndd复制多行
Ddelete删除至行尾

如果使用可视模式已经选中了一段文本,那么无论使用 d 还是 x,都可以删除选中文本

  • 删除命令可以和移动命令 连用,以下是常见的组合命令:
dw             # 从光标位置删除到单词末尾
d0             # 从光标位置删除到一行的起始位置
d}             # 从光标位置删除到段落结尾
ndd            # 从光标位置向下连续删除 n 行
d代码行G        # 从光标所在行删除到指定代码行之间的所有代码
d'a            # 从光标所在行 删除到 标记a 之间的所有代码
8.赋值、粘贴
  • vi 中提供有一个被赋值文本的缓冲区
    • 复制命令会将选中的文字保存在缓冲区
    • 删除命令删除的文字会被保存在缓冲区
    • 在需要的位置,使用粘贴命令可以将缓冲区的文字插入到光标所在位置
命令英文功能
y(移动命令)copy复制
yycopy复制一行,可以 nyy 复制多行
ppaste粘贴

提示:

  • 命令d、x 类似于图形界面的 剪切操作—— CTRL + X
  • 命令 y 类似于图形界面的复制操作——CTRL + C
  • 命令 p 类似于图形界面的粘贴操作——CTRL + V
  • vi 中的文本缓冲区同样只有一个,如果后续做过复制、剪切操作,之前缓冲区中的内容会被替换

注意:

  • vi 中的文本缓冲区 和 系统的剪切板 不是同一个
  • 所以在其他软件中使用 CTRL + C 复制的内容,不能在 vi 中通过 p 命令粘贴
  • 可以在编辑模式下使用鼠标右键粘贴
9.替换
命令英文功能工作模式
rreplace替换当前字符命令模式
Rreplace替换当前行光标后的字符替换模式
  • R 命令可以进入替换模式,替换完成后,按下 ESC 可以回到命令模式
  • 替换命令 的作用就是不用进入 编辑模式,对文件进行 轻量级的修改
10.缩排和重复执行
命令功能
>>向右增加缩进
<<向左减少缩进
.重复上次命令
  • 缩排命令在开发程序时,同意增加代码的缩进比较有用
    • 一次性在选中代码前增加4个空格,就叫做增加缩进
    • 一次性在选中代码前删除4个空格,就叫做减少缩进
11.查找
(1)常规查找
命令功能
/str查找str
  • 查找到指定内容之后,使用 Next 查找下一个出现的位置:
    • n:查找下一个
    • N:查找上一个
  • 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可

单词快速匹配

命令功能
*向后查找当前光标所在单词
#向前查找当前光标所在单词
(2)查找并替换
  • 在 vi 中查找和替换命令需要在末行模式下执行

  • 命令格式:

      :%s///g
    

全局替换

  • 一次性替换文件中的所有出现的旧文本

  • 命令格式如下:

      	:%s/旧文本/新文本/g
    

相当于以下图片
在这里插入图片描述
可视区域替换

  • 先选中要替换文字的范围

  • 命令格式如下:

      :s/旧文本/新文本/g
    

在选中文字范围后按下 : 后会出现’<,’>
在这里插入图片描述
出现后无需删除,在’<,’>后依次输入要使用的替换命令

:'<,'>s/旧文本/新文本/g

确认替换

  • 如果把末尾的 g 改成 gc 在替换的时候,会有提示。

    :%s/旧文本/新文本/gc

  1. y - yes 替换
  2. n - no 不替换
  3. a - all 替换所有
  4. q - quit 退出替换
  5. l - last 最后一个,并把光标移动到行首
  6. ^E 向下滚屏
  7. ^Y 向上滚屏
12.插入命令
  • 在 vi 中除了常用的 i 进入 编辑模式外,还提供了一下命令同样可以进入编辑模式:
命令英文功能
iinsert在当前字符前插入文本
Iinsert在行首插入文本
aappend在当前字符后添加文本
Aappend在行末添加文本
o在当前行后面插入一空行
O在当前行前面插入一空行
(1)编辑命令和数字连用

如果需要连续输入N个同样的字符
例如: ********** 连续 10个星号
要实现这个效果可以在 命令模式下

  1. 输入10,表示要重复 10次
  2. 输入 i 进入编辑模式
  3. 输入 * 要重复的文本
  4. 按下 ESC 返回到命令模式,返回之后 vi 就会把第 2、3两步的操作重复 10 次
(2)利用可视块 给多行代码增加注释
  • 在开发中,可能会遇到一次性给Python多行代码增加注释的情况

要实现这个效果可以在命令模式下

  1. 移动到要添加注释i的第1行代码,按^来到行首
  2. 按 CTRL + v 进入可视块 模式
  3. 使用 j 向下连续选中要添加的代码行
  4. 输入 I 进入 编辑模式,并在行首插入,注意:一定要使用 I
  5. 输入 # 注释符号
  6. 按下 ESC 返回到命令模式,返回之后 vi 会在之前选中的每一行代码前插入 #
13.末行命令扩展

末行命令主要是针对文件进行操作的,保存、退出、保存&退出、搜索&替换、另存、新建、浏览文件

命令英文功能
:e .edit会打开内置的文件浏览器,浏览要当前目录下的文件
:n 文件名new新建文件
:w文件名write另存为,但是仍然编辑当前文件,并不会切换文件
使用:e 目标文件名(包括文件后缀)  

可浏览目标文件

提示:切换文件之前,必须保证当前这个文件已经被保存

已经学习过的末行命令:

命令英文功能
:wwrite保存
:qquit退出,如果没有保存,不允许退出
:q!quit强行退出,不保存退出
:wqwrite & quit保存并退出
:x保存并退出
:%s///gc确认搜索并替换
14.分屏命令
  • 使用分屏命令,可以同时编辑和查看多个文件
命令英文功能
:sp [文件名]split横向增加分屏
:vsp [文件名]vertical split纵向增加分屏

切换分屏窗口
分屏窗口都是基于 CTRL + w 这个快捷键, w对应的英文单词是 window

命令英文功能
wwindow切换到下一个窗口
rreverse互换窗口
cclose关闭当前窗口,但是不能关闭最后一个窗口
qquit退出当前窗口,如果是最后一个窗口,则关闭 vi
oother关闭其他窗口

例如:
切换到下一个窗口 使用命令

CTRL + w + w 

互换窗口窗口 使用命令

CTRL + w + r

关闭当前窗口 使用命令

CTRL + w + c	
SublimeText2 1 1. Ubuntu安装 5 2. Ubuntu下的中文支持 5 2.1. fctix输入法支持-搜狗 5 2.2. 中文光标支持 6 2.3. InputHelper 6 3. 插件篇 6 3.1. 安装包管理器 6 3.2. 高亮类 7 3.2.1. Bracket Highlighter 7 3.2.2. CNPunctuationAutopair 7 3.3. Markdown 7 3.3.1. MarkdownEditing 7 3.3.2. Markdown Extended 7 3.3.2.1. 需要Monokai Extended主题进行高亮支持 7 3.3.3. MarkdownTOC 8 3.3.4. Markdown Preview 8 3.3.4.1. ST2 LiveReload plugin 9 3.3.5. Markdown Slideshow 9 3.3.6. Markdown Todo 9 3.3.7. knockdown 9 3.3.7.1. 相对Extended样式更加鲜明 但是白色的面板不知道怎调节 9 3.4. 功能增强 9 3.4.1. All Autocomplete 10 3.4.2. GBK to UTF8 10 3.4.3. SideBar Enhancements 10 3.4.4. Clipboard History 10 3.4.5. SublimeREPL 10 3.4.6. PlainTasks 10 3.4.7. Open Folder 11 3.4.8. RenameTab 11 3.4.9. Browser Refresh 11 3.4.10. Tag 11 3.4.11. ctags 11 3.4.12. Open URL 12 3.4.13. sublime v8 12 3.4.14. SFTP 12 3.5. 编辑支持类 13 3.5.1. DocBlockr 13 3.5.2. Sublime Alignment 13 3.5.3. Sublime CodeIntel 14 3.5.4. SublimeTmpl 14 3.5.5. isoD 14 3.5.6. DeleteBlankLines 14 3.5.7. Change Quotes 14 3.5.8. Sublime Linter 14 3.5.9. DetectSyntax 15 3.5.10. LoremIpsum 15 3.5.11. INI 15 3.6. CSS 15 3.6.1. Goto-CSS-Declaration 15 3.6.2. ColorPicker 15 3.6.3. Hex to HSL 15 3.6.4. Prefixr 15 3.6.5. Sass 15 3.6.6. SCSS 15 3.7. 设置工具 16 3.7.1. KeymapManager 16 3.8. Git/Gist 16 3.8.1. Gist 16 3.8.2. Git 16 3.9. 其它 16 3.9.1. Compass 16 3.9.2. Wordpress 16 3.10. JS/JQuery 16 3.10.1. JS Format 16 3.10.2. jQuery Package for sublime Text 17 3.10.3. JSLint 17 3.10.4. JsMinifier 17 3.10.5. yui compressor 17 3.10.6. Nettuts Fetch 17 3.11. HTML 17 3.11.1. Emmet 17 3.11.2. Placeholders 18 3.11.3. html5 18 3.12. PHP 18 3.12.1. PHPTity 18 4. 操作篇 18 4.1. Windows快捷键 18 4.2. 文件快速导航 19 4.3. 命令行模式 19 4.4. Open folders as projects from command-line 19 4.5. Searching multiple files 20 4.6. Configure sane tab and whitespace policy and other settings 20 4.7. 示例配置 20 4.8. 代码片段 24 5. 主题篇 24 5.1. Dayle Rees Themes 24 5.2. Theme - Phoenix 24 6. 来源 24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值