- 浏览: 61456 次
- 性别:
- 来自: 上海
-
最新评论
-
baiyuxiong:
效果不错,不过如果视频文件 不存在时容易使IE死掉。
Flv在线播放器 -
天涯游之:
呵呵,不错!
Ubuntu 10.10安装Eclipse -
天涯游之:
...
jQuery新闻列表动态显示效果 -
天涯游之:
...
Permission denied to access property 'dom' from a non-chrome context -
345161974:
wzglovejava 写道今天在JE上看到了这个,我也在自学 ...
最快捷测试Ext对象属性的方法
标题: VIM教程 <!-- vB 中文修改开始: 显示声望 --> <!-- vB 中文修改结束 --> <!-- / icon and title -->
<!-- message -->
坛子上有很多关于VI的教程
但不是很系统
故发此帖,VI与VIM的命令差不多
希望对大家有所帮助
这是从VIM的系统教程中复制过来的
你也可以运行
就会出来和下面一样的教程。
本教程只是为了简明地介绍一下vim编辑器,但已足以让您很容易学会使用本编辑器了。毋庸质疑,Vim还有很多很多的命令,本教程所介 绍的还差得远著呢。所以您要精通的话,还望继续努力哦。下一步您可以阅读vim手册,使用的命令是∶
或参看VIM用户手册
正文开始
===============================================================================
= 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.5 =
===============================================================================
vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中
就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这
些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。
完成本教程的内容大约需要25-30分钟,取决于您训练的时间。
每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上
进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。
切记一点∶本教程的设计思路是在使用中进行学习的。也就是说,您需要通过
执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能
会很快遗忘这些命令的!
好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上
的字母键 j 足够多的次数来移动光标,直到第一节的内容能够完全充满屏幕。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第一节∶移动光标
※※ 要移动光标,请依照说明分别按下 h、j、k、l 键。 ※※
11111 ^
11111 k111111111 提示∶ h 的键位于左边,每次按下就会向左移动。
11 < h 11 l >1111111111 l 的键位于右边,每次按下就会向右移动。
11111 j 1111111111111 j 键看起来很象一支尖端方向朝下的箭头。
11111 v
1. 请随意在屏幕内移动光标,直至您觉得舒服为止。
2. 按下下行键(j),直到出现光标重复下行。
---> 现在您应该已经学会如何移动到下一讲吧。
3. 现在请使用下行键,将光标移动到第二讲。
提示∶如果您不敢确定您所按下的字母,请按下<ESC>键回到正常(Normal)模式。
然后再次从键盘输入您想要的命令。
提示∶光标键应当也能正常工作的。但是使用hjkl键,在习惯之后您就能够快速
地在屏幕内四处移动光标了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第二节∶VIM的进入和退出
!! 特别提示∶敬请阅读完整本一节的内容,然后才能执行以下所讲解的命令。
1. 请按<ESC>键(这是为了确保您处在正常模式)。
2. 然后输入∶ :q! <回车>
---> 这种方式的退出编辑器绝不会保存您进入编辑器以来所做的改动。
如果您想保存更改再退出,请输入∶
:wq <回车>
3. 如果您看到了命令行提示符,请输入能够带您回到本教程的命令,那就是∶
vimtutor <回车>
通常情况下您也可以用这种方式∶
vim tutor <回车>
---> 这里的 'vim' 表示进入vim编辑器,而 'tutor'则是您准备要编辑的文件。
4. 如果您自信已经牢牢记住了这些步骤的话,请从步骤1执行到步骤3退出,然
后再次进入编辑器。接着将光标移动到第一讲第三节来继续我们的教程讲解。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第三节∶文本编辑之删除
** 在正常(Normal)模式下,可以按下 x 键来删除光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 为了修正输入错误,请将光标移至准备删除的字符的位置处。
3. 然后按下 x 键将错误字符删除掉。
4. 重复步骤2到步骤4,直到句子修正为止。
---> The ccow jumpedd ovverr thhe mooon.
5. 好了,该行已经修正了,下一节内容是第一讲第四节。
特别提示∶在您浏览本教程时,不要强行记忆。记住一点∶在使用中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第四节∶文本编辑之插入
** 在正常模式下,可以按下 i 键来插入文本。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 为了使得第一行内容雷同于第二行,请将光标移至文本第一个字符准备插入
的位置。
3. 然后按下 i 键,接着输入必要的文本字符。
4. 所有文本都修正完毕,请按下 <ESC> 键返回正常模式。
重复步骤2至步骤4以便修正句子。
---> There is text misng this .
---> There is some text missing from this line.
5. 如果您对文本插入操作已经很满意,请接着阅读下面的小结。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲小结
1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h (左移) j (下行) k (上行) l (右移)
2. 欲进入vim编辑器(从命令行提示符),请输入∶vim 文件名 <回车>
3. 欲退出vim编辑器,请输入以下命令放弃所有修改∶
<ESC> :q! <回车>
或者输入以下命令保存所有修改∶
<ESC> :wq <回车>
4. 在正常模式下删除光标所在位置的字符,请按∶ x
5. 在正常模式下要在光标所在位置开始插入文本,请按∶
i 输入必要文本 <ESC>
特别提示∶按下 <ESC> 键会带您回到正常模式或者取消一个不期望或者部分完成
的命令。
好了,第一讲到此结束。下面接下来继续第二讲的内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第一节∶删除类命令
** 输入 dw 可以从光标处删除至一个单字/单词的末尾。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移至准备要删除的单词的开始。
4. 接着输入 dw 删除掉该单词。
特别提示∶您所输入的 dw 会在您输入的同时出现在屏幕的最后一行。如果您输
入有误,请按下 <ESC> 键取消,然后重新再来。
---> There are a some words fun that don't belong paper in this sentence.
5. 重复步骤3至步骤4,直至句子修正完毕。接着继续第二讲第二节内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第二节∶其他删除类命令
** 输入 d$ 从当前光标删除到行末。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。
4. 然后输入 d$ 从光标处删至当前行尾部。
---> Somebody typed the end of this line twice. end of this line twice.
5. 请继续学习第二讲第三节就知道是怎么回事了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第三节∶关于命令和对象
删除命令 d 的格式如下∶
[number] d object 或者 d [number] object
其意如下∶
number - 代表执行命令的次数(可选项,缺省设置为 1 )。
d - 代表删除。
object - 代表命令所要操作的对象(下面有相关介绍)。
一个简短的对象列表∶
w - 从当前光标当前位置直到单字/单词末尾,包括空格。
e - 从当前光标当前位置直到单字/单词末尾,但是 *不* 包括空格。
$ - 从当前光标当前位置直到当前行末。
特别提示∶
对于勇于探索者,请在正常模式下面仅按代表相应对象的键而不使用命令,则
将看到光标的移动正如上面的对象列表所代表的一样。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第四节∶对象命令的特殊情况
** 输入 dd 可以删除整一个当前行。 **
鉴于整行删除的高频度,VIM 的设计者决定要简化整行删除,仅需要在同一行上
击打两次 d 就可以删除掉光标所在的整行了。
1. 请将光标移动到本节中下面的短句段落中的第二行。
2. 输入 dd 删除该行。
3. 然后移动到第四行。
4. 接着输入 2dd (还记得前面讲过的 number-command-object 吗?) 删除两行。
1) Roses are red,
2) Mud is fun,
3) Violets are blue,
4) I have a car,
5) Clocks tell time,
6) Sugar is sweet
7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第五节∶撤消类命令
** 输入 u 来撤消最后执行的命令,输入 U 来修正整行。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行,并将其置于第一个错误
处。
2. 输入 x 删除第一个不想保留的字母。
3. 然后输入 u 撤消最后执行的(一次)命令。
4. 这次要使用 x 修正本行的所有错误。
5. 现在输入一个大写的 U ,恢复到该行的原始状态。
6. 接着多次输入 u 以撤消 U 以及更前的命令。
7. 然后多次输入 CTRL-R (先按下 CTRL 键不放开,接着输入 R 键) ,这样就
可以执行恢复命令,也就是撤消掉撤消命令。
---> Fiix the errors oon thhis line and reeplace them witth undo.
8. 这些都是非常有用的命令。下面是第二讲的小结了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲小结
1. 欲从当前光标删除至单字/单词末尾,请输入∶dw
2. 欲从当前光标删除至当前行末尾,请输入∶d$
3. 欲删除整行,请输入∶dd
4. 在正常模式下一个命令的格式是∶
[number] command object 或者 command [number] object
其意是∶
number - 代表的是命令执行的次数
command - 代表要做的事情,比如 d 代表删除
object - 代表要操作的对象,比如 w 代表单字/单词,$ 代表到行末等等。
$ (to the end of line), etc.
5. 欲撤消以前的操作,请输入∶u (小写的u)
欲撤消在一行中所做的改动,请输入∶U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第一节∶置入类命令
** 输入 p 将最后一次删除的内容置入光标之后 **
1. 请将光标移动到本节中下面示范段落的首行。
2. 输入 dd 将该行删除,这样会将该行保存到vim的缓冲区中。
3. 接着将光标移动到准备置入的位置的上方。记住∶是上方哦。
4. 然后在正常模式下(<ESC>键进入),输入 p 将该行粘贴置入。
5. 重复步骤2至步骤4,将所有的行依序放置到正确的位置上。
d) Can you learn too?
b) Violets are blue,
c) Intelligence is learned,
a) Roses are red,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第二节∶替换类命令
** 输入 r 和一个字符替换光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 请移动光标到第一个错误的适当位置。
3. 接着输入 r ,这样就能将错误替换掉了。
4. 重复步骤2和步骤3,直到第一行已经修改完毕。
---> Whan this lime was tuoed in, someone presswd some wrojg keys!
---> When this line was typed in, someone pressed some wrong keys!
5. 然后我们继续学校第三讲第三节。
特别提示∶切记您要在使用中学习,而不是在记忆中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第三节∶更改类命令
** 要改变一个单字/单词的部分或者全部,请输入 cw **
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 接着把光标放在单词 lubw 的字母 u 的位置那里。
3. 然后输入 cw 就可以修正该单词了(在本例这里是输入 ine 。)
4. 最后按 <ESC> 键,然后光标定位到下一个错误第一个准备更改的字母处。
5. 重复步骤3和步骤4,直到第一个句子完全雷同第二个句子。
---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.
提示∶请注意 cw 命令不仅仅是替换了一个单词,也让您进入文本插入状态了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第四节∶使用c指令的其他更改类命令
** 更改类指令可以使用同删除类命令所使用的对象参数。**
1. 更改类指令的工作方式跟删除类命令是一致的。操作格式是∶
[number] c object 或者 c [number] object
2. 对象参数也是一样的,比如 w 代表单字/单词,$代表行末等等。
3. 请将光标移动到本节中下面标记有 ---> 的第一行。
4. 接着将光标移动到第一个错误处。
5. 然后输入 c$ 使得该行剩下的部分更正得同第二行一样。最后按 <ESC> 键。
---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the c$ command.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲小结
1. 要重新置入已经删除的文本内容,请输入小写字母 p。该操作可以将已删除
的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置
于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
符即可。
3. 更改类命令允许您改变指定的对象,从当前光标所在位置直到对象的末尾。
比如输入 cw 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当
前光标到行末的内容。
4. 更改类命令的格式是∶
[number] c object 或者 c [number] object
下面我们继续学习下一讲。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第一节∶定位及文件状态
** 输入 CTRL-g 显示当前编辑文件中当前光标所在行位置以及文件状态信息。
输入 SHIFT-G 则直接跳转到文件中的某一指定行。**
提示∶切记要先通读本节内容,之后才可以执行以下步骤!!!
1. 按下 CTRL 键不放开然后按 g 键。然后就会看到页面最底部出现一个状态信
息行,显示的内容是当前编辑的文件名和文件的总行数。请记住步骤3的行号。
2. 按下 SHIFT-G 键可以使得当前光标直接跳转到文件最后一行。
3. 输入您曾停留的行号,然后按下 SHIFT-G。这样就可以返回到您第一次按下
CTRL-g 时所在的行好了。注意∶输入行号时,行号是不会在屏幕上显示出来
的。
4. 如果愿意,您可以继续执行步骤1至步骤三。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第二节∶搜索类命令
** 输入 / 以及尾随的字符串可以用以在当前文件中查找该字符串。**
1. 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底
部,这跟 : 命令是一样的。
2. 接着输入 errroor <回车>。那个errroor就是您要查找的字符串。
3. 要查找同上一次的字符串,只需要按 n 键。要向相反方向查找同上一次的字
符串,请输入 Shift-N 即可。
4. 如果您想逆向查找字符串,请使用 ? 代替 / 进行。
---> When the search reaches the end of the file it will continue at the start.
"errroor" is not the way to spell error; errroor is an error.
提示∶如果查找已经到达文件末尾,查找会自动从文件头部继续查找。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第三节∶配对括号的查找
** 按 % 可以查找配对的括号 )、]、}。**
1. 把光标放在本节下面标记有 --> 那一行中的任何一个 (、[ 或 { 处。
2. 接着按 % 字符。
3. 此时光标的位置应当是在配对的括号处。
4. 再次按 % 就可以跳回配对的第一个括号处。
---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
提示∶在程序调试时,这个功能用来查找不配对的括号是很有用的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第四节∶修正错误的方法之一
** 输入 :s/old/new/g 可以替换 old 为 new。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配
串。
3. 输入 :s/thee/the/g 则是替换全行的匹配串。
---> the best time to see thee flowers is in thee spring.
4. 要替换两行之间出现的每个匹配串,请输入 :#,#s/old/new/g (#,#代表的是
两行的行号)。输入 :%s/old/new/g 则是替换整个文件中的每个匹配串。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲小结
1. Ctrl-g 用于显示当前光标所在位置和文件状态信息。Shift-G 用于将光标跳
转至文件最后一行。先敲入一个行号然后按 Shift-G 则是将光标移动至该行
号代表的行。
2. 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。
输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字
符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查
找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。
3. 如果光标当前位置是括号(、)、[、]、{、},按 % 可以将光标移动到配对的
括号上。
4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第一节∶在 VIM 内执行外部命令的方法
** 输入 :! 然后紧随著输入一个外部命令可以执行该外部命令。**
1. 按下我们所熟悉的 : 命令设置光标到屏幕底部。这样就可以让您输入命令了。
2. 接着输入感叹号 ! 这个字符,这样就允许您执行外部的 shell 命令了。
3. 我们以 ls 命令为例。输入 !ls <回车> 。该命令就会列举出您当前目录的
内容,就如同您在命令行提示符下输入 ls 命令的结果一样。如果 !ls 没起
作用,您可以试试 :!dir 看看。
---> 提示∶ 所有的外部命令都可以以这种方式执行。
---> 提示∶ 所有的 : 命令都必须以 <回车> 告终。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第二节∶关于保存文件的更多信息
** 要将对文件的改动保存到文件中,请输入 :w FILENAME 。**
1. 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲
<回车> 吧。
2. 选择一个尚未存在文件名,比如 TEST 。
3. 接着输入 :w TEST (此处 TEST 是您所选择的文件名。)
4. 该命令会以 TEST 为文件名保存整个文件 (VIM 教程)。为了确保正确保存,
请再次输入 :!dir 查看您的目录列表内容。
---> 请注意∶如果您退出 VIM 然后在以文件名 TEST 为参数进入,那么该文件内
容应该同您保存时的文件内容是完全一样的。
5. 现在您可以通过输入 :!rm TEST 来删除 TEST 文件了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第三节∶一个具有选择性的保存命令
** 要保存文件的部分内容,请输入 :#,# w FILENAME **
1. 再来执行一次 :!dir 或者 :!ls 获知当前目录的内容,然后选择一个合适的
不重名的文件名,比如 TEST 。
2. 接着将光标移动至本页的最顶端,然后按 CTRL-g 找到该行的行号。别忘了
行号哦。
3. 接着把光标移动至本页的最底端,再按一次 CTRL-g 。也别忘了这个行好哦。
4. 为了只保存文章的某个部分,请输入 :#,# w TEST 。这里的 #,# 就是上面
要求您记住的行号(顶端行号,底端行号),而 TEST 就是选定的文件名。
5. 最后,用 :!dir 确认文件是否正确保存。但是这次先别删除掉。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第四节∶提取和合并文件
** 要向当前文件中插入另外的文件的内容,请输入 :r FILENAME **
1. 请键入 :!dir 确认您前面创建的 TEST 文件还在。
2. 然后将光标移动至当前页面的顶端。
特别提示∶ 执行步骤3之后您将看到第五讲第三节,请届时再往下移动回到这里来。
3. 接着通过 :r TEST 将前面创建的名为 TEST 的文件提取进来。
特别提示∶您所提取进来的文件将从光标所在位置处开始置入。
4. 为了确认文件已经提取成功,移动光标回到原来的位置就可以注意有两份第
五讲第三节,一份是原本,另外一份是来自文件的副本。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲小结
1. :!command 用于执行一个外部命令 command。
请看一些实际例子∶
:!dir - 用于显示当前目录的内容。
:!rm FILENAME - 用于删除名为 FILENAME 的文件。
2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
件中。
3. :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件
FILENAME 中。
4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
后面。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第一节∶打开类命令
** 输入 o 将在光标的下方打开新的一行并进入插入模式。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 接着输入小写的 o 在光标 *下方* 打开新的一行并进入插入模式。
3. 然后复制标记有 ---> 的行并按 <ESC> 键退出插入模式而进入正常模式。
---> After typing o the cursor is placed on the open line in Insert mode.
4. 为了在光标 *上方* 打开新的一行,只需要输入大写的 O 而不是小写的 o
就可以了。请在下行测试一下吧。当光标处在在该行上时,按 Shift-O可以
在该行上方新开一行。
Open up a line above this by typing Shift-O while the cursor is on this line.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第二节∶光标后插入类命令
** 输入 a 将可在光标之后插入文本。 **
1. 请在正常模式下通过输入 $ 将光标移动到本节中下面标记有 ---> 的第一行
的末尾。
2. 接着输入小写的 a 则可在光标之后插入文本了。大写的 A 则可以直接在行
末插入文本。
提示∶输入大写 A 的操作方法可以在行末插入文本,避免了输入 i,光标定位到
最后一个字符,输入的文本,<ESC> 回复正常模式,箭头右键移动光标以及
x 删除当前光标所在位置字符等等诸多繁杂的操作。
3. 操作之后第一行就可以补充完整了。请注意光标后插入文本与插入模式是基
本完全一致的,只是文本插入的位置定位稍有不同罢了。
---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第三节∶另外一个置换类命令的版本
** 输入大写的 R 可连续替换多个字符。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 移动光标到第一行中不同于标有 ---> 的第二行的第一个单词的开始,即单
词 last 处。
3. 然后输入大写的 R 开始把第一行中的不同于第二行的剩余字符逐一输入,就
可以全部替换掉原有的字符而使得第一行完全雷同第二行了。
---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.
4. 请注意∶如果您按 <ESC> 退出置换模式回复正常模式,尚未替换的文本将仍
然保持原状。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第四节∶设置类命令的选项
** 设置可使查找或者替换可忽略大小写的选项 **
1. 要查找单词 ignore 可在正常模式下输入 /ignore 。要重复查找该词,可以
重复按 n 键。
2. 然后设置 ic 选项(ic就是英文忽略大小写Ignore Case的首字母缩写词),即
输入∶
:set ic
3. 现在可以通过键入 n 键再次查找单词 ignore。重复查找可以重复键入 n 键。
4. 然后设置 hlsearch 和 incsearch 这两个选项,输入以下内容∶
:set hls is
5. 现在可以再次输入查找命令,看看会有什么效果∶
/ignore
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲小结
1. 输入小写的 o 可以在光标下方打开新的一行并将光标置于新开的行首,进入
插入模式。
输入大写的 O 可以在光标上方打开新的一行并将光标置于新开的行首,进入
插入模式。
2. 输入小写的 a 可以在光标所在位置之后插入文本。
输入大写的 A 可以在光标所在行的行末之后插入文本。
3. 输入大写的 R 将进入替换模式,直至按 <ESC> 键退出替换模式而进入正常
模式。
4. 输入 :set xxx 可以设置 xxx 选项。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第七讲∶在线帮助命令
** 使用在线帮助系统 **
Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方
法之一∶
- 按下 <HELP> 键 (如果键盘上有的话)
- 按下 <F1> 键 (如果键盘上有的话)
- 输入 :help <回车>
输入 :q <回车> 可以关闭帮助窗口。
提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以
下参数(可别忘了按回车键哦。:)∶
:help w <回车>
:help c_<T <回车>
:help insert-index <回车>
:help user-manual <回车>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第八讲∶创建一个启动脚本
** 启用vim的功能 **
Vim的功能特性要比vi多得多,但大部分功能都没有缺省激活。为了启动更多的
功能,您得创建一个vimrc文件。
1. 开始编辑vimrc文件,这取决于您所使用的操作系统∶
:edit ~/.vimrc 这是Unix系统所使用的命令
:edit $VIM/_vimrc 这是Windows系统所使用的命令
2. 接着导入vimrc范例文件∶
:read $VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令为∶
:write
在下次您启动vim的时候,编辑器就会有了语法高亮的功能。您可以继续把您喜
欢的其它功能设置添加到这个vimrc文件中。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim 教程到此结束。本教程只是为了简明地介绍一下vim编辑器,但已足以让您
很容易学会使用本编辑器了。毋庸质疑,vim还有很多很多的命令,本教程所介
绍的还差得远著呢。所以您要精通的话,还望继续努力哦。下一步您可以阅读
vim手册,使用的命令是∶
:help user-manual
为了更进一步的参考和学习,以下这本书值得推荐∶
Vim - Vi Improved - 作者∶Steve Oualline
出版社∶New Riders
这是第一本完全讲解vim的书籍。对于初学者特别有用。其中还包含有大量实例
和图示。欲知详情,请访问 http://iccf-holland.org/click5.html
以下这本书比较老了而且内容主要是vi而不是vim,但是也值得推荐∶
Learning the Vi Editor - 作者∶Linda Lamb
出版社∶O'Reilly & Associates Inc.
这是一本不错的书,通过它您几乎能够了解到全部vi能够做到的事情。此书的第
六个版本也包含了一些关于vim的信息。
本教程是由来自Calorado School of Minese的Michael C. Pierce、Robert K.
Ware 所编写的,其中来自Colorado State University的Charles Smith提供了
很多创意。编者通信地址是∶
bware@mines.colorado.edu
本教程已由Bram Moolenaar专为vim进行修订。
译制者附言∶
===========
简体中文教程翻译版之译制者为梁昌泰 <beos@turbolinux.com.cn>,还有
另外一个联系地址∶linuxrat@gnuchina.org。
繁体中文教程是从简体中文教程翻译版使用 Debian GNU/Linux 中文项目小
组的于广辉先生编写的中文汉字转码器 autoconvert 转换而成的,并对转
换的结果做了一些细节的改动。
变更记录∶
=========
2002年08月30日 梁昌泰 <beos@turbolinux.com.cn>
感谢 RMS@SMTH 的指正,将多处错误修正。
2002年04月22日 梁昌泰 <linuxrat@gnuchina.org>
感谢 xuandong@sh163.net 的指正,将两处错别字修正。
2002年03月18日 梁昌泰 <linuxrat@gnuchina.org>
根据Bram Molenaar先生在2002年03月16日的来信要求,将vimtutor1.4中译
版升级到vimtutor1.5。
2001年11月15日 梁昌泰 <linuxrat@gnuchina.org>
将vimtutor1.4中译版提交给Bram Molenaar和Sven Guckes。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
正文结束
<!-- / message -->
<!-- sig -->
但不是很系统
故发此帖,VI与VIM的命令差不多
希望对大家有所帮助
这是从VIM的系统教程中复制过来的
你也可以运行
代码:
$ vimtutor
本教程只是为了简明地介绍一下vim编辑器,但已足以让您很容易学会使用本编辑器了。毋庸质疑,Vim还有很多很多的命令,本教程所介 绍的还差得远著呢。所以您要精通的话,还望继续努力哦。下一步您可以阅读vim手册,使用的命令是∶
代码:
:help user-manual
正文开始
===============================================================================
= 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.5 =
===============================================================================
vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中
就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这
些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。
完成本教程的内容大约需要25-30分钟,取决于您训练的时间。
每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上
进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。
切记一点∶本教程的设计思路是在使用中进行学习的。也就是说,您需要通过
执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能
会很快遗忘这些命令的!
好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上
的字母键 j 足够多的次数来移动光标,直到第一节的内容能够完全充满屏幕。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第一节∶移动光标
※※ 要移动光标,请依照说明分别按下 h、j、k、l 键。 ※※
11111 ^
11111 k111111111 提示∶ h 的键位于左边,每次按下就会向左移动。
11 < h 11 l >1111111111 l 的键位于右边,每次按下就会向右移动。
11111 j 1111111111111 j 键看起来很象一支尖端方向朝下的箭头。
11111 v
1. 请随意在屏幕内移动光标,直至您觉得舒服为止。
2. 按下下行键(j),直到出现光标重复下行。
---> 现在您应该已经学会如何移动到下一讲吧。
3. 现在请使用下行键,将光标移动到第二讲。
提示∶如果您不敢确定您所按下的字母,请按下<ESC>键回到正常(Normal)模式。
然后再次从键盘输入您想要的命令。
提示∶光标键应当也能正常工作的。但是使用hjkl键,在习惯之后您就能够快速
地在屏幕内四处移动光标了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第二节∶VIM的进入和退出
!! 特别提示∶敬请阅读完整本一节的内容,然后才能执行以下所讲解的命令。
1. 请按<ESC>键(这是为了确保您处在正常模式)。
2. 然后输入∶ :q! <回车>
---> 这种方式的退出编辑器绝不会保存您进入编辑器以来所做的改动。
如果您想保存更改再退出,请输入∶
:wq <回车>
3. 如果您看到了命令行提示符,请输入能够带您回到本教程的命令,那就是∶
vimtutor <回车>
通常情况下您也可以用这种方式∶
vim tutor <回车>
---> 这里的 'vim' 表示进入vim编辑器,而 'tutor'则是您准备要编辑的文件。
4. 如果您自信已经牢牢记住了这些步骤的话,请从步骤1执行到步骤3退出,然
后再次进入编辑器。接着将光标移动到第一讲第三节来继续我们的教程讲解。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第三节∶文本编辑之删除
** 在正常(Normal)模式下,可以按下 x 键来删除光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 为了修正输入错误,请将光标移至准备删除的字符的位置处。
3. 然后按下 x 键将错误字符删除掉。
4. 重复步骤2到步骤4,直到句子修正为止。
---> The ccow jumpedd ovverr thhe mooon.
5. 好了,该行已经修正了,下一节内容是第一讲第四节。
特别提示∶在您浏览本教程时,不要强行记忆。记住一点∶在使用中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第四节∶文本编辑之插入
** 在正常模式下,可以按下 i 键来插入文本。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 为了使得第一行内容雷同于第二行,请将光标移至文本第一个字符准备插入
的位置。
3. 然后按下 i 键,接着输入必要的文本字符。
4. 所有文本都修正完毕,请按下 <ESC> 键返回正常模式。
重复步骤2至步骤4以便修正句子。
---> There is text misng this .
---> There is some text missing from this line.
5. 如果您对文本插入操作已经很满意,请接着阅读下面的小结。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲小结
1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h (左移) j (下行) k (上行) l (右移)
2. 欲进入vim编辑器(从命令行提示符),请输入∶vim 文件名 <回车>
3. 欲退出vim编辑器,请输入以下命令放弃所有修改∶
<ESC> :q! <回车>
或者输入以下命令保存所有修改∶
<ESC> :wq <回车>
4. 在正常模式下删除光标所在位置的字符,请按∶ x
5. 在正常模式下要在光标所在位置开始插入文本,请按∶
i 输入必要文本 <ESC>
特别提示∶按下 <ESC> 键会带您回到正常模式或者取消一个不期望或者部分完成
的命令。
好了,第一讲到此结束。下面接下来继续第二讲的内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第一节∶删除类命令
** 输入 dw 可以从光标处删除至一个单字/单词的末尾。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移至准备要删除的单词的开始。
4. 接着输入 dw 删除掉该单词。
特别提示∶您所输入的 dw 会在您输入的同时出现在屏幕的最后一行。如果您输
入有误,请按下 <ESC> 键取消,然后重新再来。
---> There are a some words fun that don't belong paper in this sentence.
5. 重复步骤3至步骤4,直至句子修正完毕。接着继续第二讲第二节内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第二节∶其他删除类命令
** 输入 d$ 从当前光标删除到行末。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。
4. 然后输入 d$ 从光标处删至当前行尾部。
---> Somebody typed the end of this line twice. end of this line twice.
5. 请继续学习第二讲第三节就知道是怎么回事了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第三节∶关于命令和对象
删除命令 d 的格式如下∶
[number] d object 或者 d [number] object
其意如下∶
number - 代表执行命令的次数(可选项,缺省设置为 1 )。
d - 代表删除。
object - 代表命令所要操作的对象(下面有相关介绍)。
一个简短的对象列表∶
w - 从当前光标当前位置直到单字/单词末尾,包括空格。
e - 从当前光标当前位置直到单字/单词末尾,但是 *不* 包括空格。
$ - 从当前光标当前位置直到当前行末。
特别提示∶
对于勇于探索者,请在正常模式下面仅按代表相应对象的键而不使用命令,则
将看到光标的移动正如上面的对象列表所代表的一样。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第四节∶对象命令的特殊情况
** 输入 dd 可以删除整一个当前行。 **
鉴于整行删除的高频度,VIM 的设计者决定要简化整行删除,仅需要在同一行上
击打两次 d 就可以删除掉光标所在的整行了。
1. 请将光标移动到本节中下面的短句段落中的第二行。
2. 输入 dd 删除该行。
3. 然后移动到第四行。
4. 接着输入 2dd (还记得前面讲过的 number-command-object 吗?) 删除两行。
1) Roses are red,
2) Mud is fun,
3) Violets are blue,
4) I have a car,
5) Clocks tell time,
6) Sugar is sweet
7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第五节∶撤消类命令
** 输入 u 来撤消最后执行的命令,输入 U 来修正整行。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行,并将其置于第一个错误
处。
2. 输入 x 删除第一个不想保留的字母。
3. 然后输入 u 撤消最后执行的(一次)命令。
4. 这次要使用 x 修正本行的所有错误。
5. 现在输入一个大写的 U ,恢复到该行的原始状态。
6. 接着多次输入 u 以撤消 U 以及更前的命令。
7. 然后多次输入 CTRL-R (先按下 CTRL 键不放开,接着输入 R 键) ,这样就
可以执行恢复命令,也就是撤消掉撤消命令。
---> Fiix the errors oon thhis line and reeplace them witth undo.
8. 这些都是非常有用的命令。下面是第二讲的小结了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲小结
1. 欲从当前光标删除至单字/单词末尾,请输入∶dw
2. 欲从当前光标删除至当前行末尾,请输入∶d$
3. 欲删除整行,请输入∶dd
4. 在正常模式下一个命令的格式是∶
[number] command object 或者 command [number] object
其意是∶
number - 代表的是命令执行的次数
command - 代表要做的事情,比如 d 代表删除
object - 代表要操作的对象,比如 w 代表单字/单词,$ 代表到行末等等。
$ (to the end of line), etc.
5. 欲撤消以前的操作,请输入∶u (小写的u)
欲撤消在一行中所做的改动,请输入∶U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第一节∶置入类命令
** 输入 p 将最后一次删除的内容置入光标之后 **
1. 请将光标移动到本节中下面示范段落的首行。
2. 输入 dd 将该行删除,这样会将该行保存到vim的缓冲区中。
3. 接着将光标移动到准备置入的位置的上方。记住∶是上方哦。
4. 然后在正常模式下(<ESC>键进入),输入 p 将该行粘贴置入。
5. 重复步骤2至步骤4,将所有的行依序放置到正确的位置上。
d) Can you learn too?
b) Violets are blue,
c) Intelligence is learned,
a) Roses are red,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第二节∶替换类命令
** 输入 r 和一个字符替换光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 请移动光标到第一个错误的适当位置。
3. 接着输入 r ,这样就能将错误替换掉了。
4. 重复步骤2和步骤3,直到第一行已经修改完毕。
---> Whan this lime was tuoed in, someone presswd some wrojg keys!
---> When this line was typed in, someone pressed some wrong keys!
5. 然后我们继续学校第三讲第三节。
特别提示∶切记您要在使用中学习,而不是在记忆中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第三节∶更改类命令
** 要改变一个单字/单词的部分或者全部,请输入 cw **
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 接着把光标放在单词 lubw 的字母 u 的位置那里。
3. 然后输入 cw 就可以修正该单词了(在本例这里是输入 ine 。)
4. 最后按 <ESC> 键,然后光标定位到下一个错误第一个准备更改的字母处。
5. 重复步骤3和步骤4,直到第一个句子完全雷同第二个句子。
---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.
提示∶请注意 cw 命令不仅仅是替换了一个单词,也让您进入文本插入状态了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第四节∶使用c指令的其他更改类命令
** 更改类指令可以使用同删除类命令所使用的对象参数。**
1. 更改类指令的工作方式跟删除类命令是一致的。操作格式是∶
[number] c object 或者 c [number] object
2. 对象参数也是一样的,比如 w 代表单字/单词,$代表行末等等。
3. 请将光标移动到本节中下面标记有 ---> 的第一行。
4. 接着将光标移动到第一个错误处。
5. 然后输入 c$ 使得该行剩下的部分更正得同第二行一样。最后按 <ESC> 键。
---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the c$ command.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲小结
1. 要重新置入已经删除的文本内容,请输入小写字母 p。该操作可以将已删除
的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置
于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
符即可。
3. 更改类命令允许您改变指定的对象,从当前光标所在位置直到对象的末尾。
比如输入 cw 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当
前光标到行末的内容。
4. 更改类命令的格式是∶
[number] c object 或者 c [number] object
下面我们继续学习下一讲。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第一节∶定位及文件状态
** 输入 CTRL-g 显示当前编辑文件中当前光标所在行位置以及文件状态信息。
输入 SHIFT-G 则直接跳转到文件中的某一指定行。**
提示∶切记要先通读本节内容,之后才可以执行以下步骤!!!
1. 按下 CTRL 键不放开然后按 g 键。然后就会看到页面最底部出现一个状态信
息行,显示的内容是当前编辑的文件名和文件的总行数。请记住步骤3的行号。
2. 按下 SHIFT-G 键可以使得当前光标直接跳转到文件最后一行。
3. 输入您曾停留的行号,然后按下 SHIFT-G。这样就可以返回到您第一次按下
CTRL-g 时所在的行好了。注意∶输入行号时,行号是不会在屏幕上显示出来
的。
4. 如果愿意,您可以继续执行步骤1至步骤三。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第二节∶搜索类命令
** 输入 / 以及尾随的字符串可以用以在当前文件中查找该字符串。**
1. 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底
部,这跟 : 命令是一样的。
2. 接着输入 errroor <回车>。那个errroor就是您要查找的字符串。
3. 要查找同上一次的字符串,只需要按 n 键。要向相反方向查找同上一次的字
符串,请输入 Shift-N 即可。
4. 如果您想逆向查找字符串,请使用 ? 代替 / 进行。
---> When the search reaches the end of the file it will continue at the start.
"errroor" is not the way to spell error; errroor is an error.
提示∶如果查找已经到达文件末尾,查找会自动从文件头部继续查找。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第三节∶配对括号的查找
** 按 % 可以查找配对的括号 )、]、}。**
1. 把光标放在本节下面标记有 --> 那一行中的任何一个 (、[ 或 { 处。
2. 接着按 % 字符。
3. 此时光标的位置应当是在配对的括号处。
4. 再次按 % 就可以跳回配对的第一个括号处。
---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
提示∶在程序调试时,这个功能用来查找不配对的括号是很有用的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第四节∶修正错误的方法之一
** 输入 :s/old/new/g 可以替换 old 为 new。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配
串。
3. 输入 :s/thee/the/g 则是替换全行的匹配串。
---> the best time to see thee flowers is in thee spring.
4. 要替换两行之间出现的每个匹配串,请输入 :#,#s/old/new/g (#,#代表的是
两行的行号)。输入 :%s/old/new/g 则是替换整个文件中的每个匹配串。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲小结
1. Ctrl-g 用于显示当前光标所在位置和文件状态信息。Shift-G 用于将光标跳
转至文件最后一行。先敲入一个行号然后按 Shift-G 则是将光标移动至该行
号代表的行。
2. 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。
输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字
符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查
找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。
3. 如果光标当前位置是括号(、)、[、]、{、},按 % 可以将光标移动到配对的
括号上。
4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第一节∶在 VIM 内执行外部命令的方法
** 输入 :! 然后紧随著输入一个外部命令可以执行该外部命令。**
1. 按下我们所熟悉的 : 命令设置光标到屏幕底部。这样就可以让您输入命令了。
2. 接着输入感叹号 ! 这个字符,这样就允许您执行外部的 shell 命令了。
3. 我们以 ls 命令为例。输入 !ls <回车> 。该命令就会列举出您当前目录的
内容,就如同您在命令行提示符下输入 ls 命令的结果一样。如果 !ls 没起
作用,您可以试试 :!dir 看看。
---> 提示∶ 所有的外部命令都可以以这种方式执行。
---> 提示∶ 所有的 : 命令都必须以 <回车> 告终。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第二节∶关于保存文件的更多信息
** 要将对文件的改动保存到文件中,请输入 :w FILENAME 。**
1. 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲
<回车> 吧。
2. 选择一个尚未存在文件名,比如 TEST 。
3. 接着输入 :w TEST (此处 TEST 是您所选择的文件名。)
4. 该命令会以 TEST 为文件名保存整个文件 (VIM 教程)。为了确保正确保存,
请再次输入 :!dir 查看您的目录列表内容。
---> 请注意∶如果您退出 VIM 然后在以文件名 TEST 为参数进入,那么该文件内
容应该同您保存时的文件内容是完全一样的。
5. 现在您可以通过输入 :!rm TEST 来删除 TEST 文件了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第三节∶一个具有选择性的保存命令
** 要保存文件的部分内容,请输入 :#,# w FILENAME **
1. 再来执行一次 :!dir 或者 :!ls 获知当前目录的内容,然后选择一个合适的
不重名的文件名,比如 TEST 。
2. 接着将光标移动至本页的最顶端,然后按 CTRL-g 找到该行的行号。别忘了
行号哦。
3. 接着把光标移动至本页的最底端,再按一次 CTRL-g 。也别忘了这个行好哦。
4. 为了只保存文章的某个部分,请输入 :#,# w TEST 。这里的 #,# 就是上面
要求您记住的行号(顶端行号,底端行号),而 TEST 就是选定的文件名。
5. 最后,用 :!dir 确认文件是否正确保存。但是这次先别删除掉。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第四节∶提取和合并文件
** 要向当前文件中插入另外的文件的内容,请输入 :r FILENAME **
1. 请键入 :!dir 确认您前面创建的 TEST 文件还在。
2. 然后将光标移动至当前页面的顶端。
特别提示∶ 执行步骤3之后您将看到第五讲第三节,请届时再往下移动回到这里来。
3. 接着通过 :r TEST 将前面创建的名为 TEST 的文件提取进来。
特别提示∶您所提取进来的文件将从光标所在位置处开始置入。
4. 为了确认文件已经提取成功,移动光标回到原来的位置就可以注意有两份第
五讲第三节,一份是原本,另外一份是来自文件的副本。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲小结
1. :!command 用于执行一个外部命令 command。
请看一些实际例子∶
:!dir - 用于显示当前目录的内容。
:!rm FILENAME - 用于删除名为 FILENAME 的文件。
2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
件中。
3. :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件
FILENAME 中。
4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
后面。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第一节∶打开类命令
** 输入 o 将在光标的下方打开新的一行并进入插入模式。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 接着输入小写的 o 在光标 *下方* 打开新的一行并进入插入模式。
3. 然后复制标记有 ---> 的行并按 <ESC> 键退出插入模式而进入正常模式。
---> After typing o the cursor is placed on the open line in Insert mode.
4. 为了在光标 *上方* 打开新的一行,只需要输入大写的 O 而不是小写的 o
就可以了。请在下行测试一下吧。当光标处在在该行上时,按 Shift-O可以
在该行上方新开一行。
Open up a line above this by typing Shift-O while the cursor is on this line.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第二节∶光标后插入类命令
** 输入 a 将可在光标之后插入文本。 **
1. 请在正常模式下通过输入 $ 将光标移动到本节中下面标记有 ---> 的第一行
的末尾。
2. 接着输入小写的 a 则可在光标之后插入文本了。大写的 A 则可以直接在行
末插入文本。
提示∶输入大写 A 的操作方法可以在行末插入文本,避免了输入 i,光标定位到
最后一个字符,输入的文本,<ESC> 回复正常模式,箭头右键移动光标以及
x 删除当前光标所在位置字符等等诸多繁杂的操作。
3. 操作之后第一行就可以补充完整了。请注意光标后插入文本与插入模式是基
本完全一致的,只是文本插入的位置定位稍有不同罢了。
---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第三节∶另外一个置换类命令的版本
** 输入大写的 R 可连续替换多个字符。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 移动光标到第一行中不同于标有 ---> 的第二行的第一个单词的开始,即单
词 last 处。
3. 然后输入大写的 R 开始把第一行中的不同于第二行的剩余字符逐一输入,就
可以全部替换掉原有的字符而使得第一行完全雷同第二行了。
---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.
4. 请注意∶如果您按 <ESC> 退出置换模式回复正常模式,尚未替换的文本将仍
然保持原状。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲第四节∶设置类命令的选项
** 设置可使查找或者替换可忽略大小写的选项 **
1. 要查找单词 ignore 可在正常模式下输入 /ignore 。要重复查找该词,可以
重复按 n 键。
2. 然后设置 ic 选项(ic就是英文忽略大小写Ignore Case的首字母缩写词),即
输入∶
:set ic
3. 现在可以通过键入 n 键再次查找单词 ignore。重复查找可以重复键入 n 键。
4. 然后设置 hlsearch 和 incsearch 这两个选项,输入以下内容∶
:set hls is
5. 现在可以再次输入查找命令,看看会有什么效果∶
/ignore
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第六讲小结
1. 输入小写的 o 可以在光标下方打开新的一行并将光标置于新开的行首,进入
插入模式。
输入大写的 O 可以在光标上方打开新的一行并将光标置于新开的行首,进入
插入模式。
2. 输入小写的 a 可以在光标所在位置之后插入文本。
输入大写的 A 可以在光标所在行的行末之后插入文本。
3. 输入大写的 R 将进入替换模式,直至按 <ESC> 键退出替换模式而进入正常
模式。
4. 输入 :set xxx 可以设置 xxx 选项。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第七讲∶在线帮助命令
** 使用在线帮助系统 **
Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方
法之一∶
- 按下 <HELP> 键 (如果键盘上有的话)
- 按下 <F1> 键 (如果键盘上有的话)
- 输入 :help <回车>
输入 :q <回车> 可以关闭帮助窗口。
提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以
下参数(可别忘了按回车键哦。:)∶
:help w <回车>
:help c_<T <回车>
:help insert-index <回车>
:help user-manual <回车>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第八讲∶创建一个启动脚本
** 启用vim的功能 **
Vim的功能特性要比vi多得多,但大部分功能都没有缺省激活。为了启动更多的
功能,您得创建一个vimrc文件。
1. 开始编辑vimrc文件,这取决于您所使用的操作系统∶
:edit ~/.vimrc 这是Unix系统所使用的命令
:edit $VIM/_vimrc 这是Windows系统所使用的命令
2. 接着导入vimrc范例文件∶
:read $VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令为∶
:write
在下次您启动vim的时候,编辑器就会有了语法高亮的功能。您可以继续把您喜
欢的其它功能设置添加到这个vimrc文件中。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim 教程到此结束。本教程只是为了简明地介绍一下vim编辑器,但已足以让您
很容易学会使用本编辑器了。毋庸质疑,vim还有很多很多的命令,本教程所介
绍的还差得远著呢。所以您要精通的话,还望继续努力哦。下一步您可以阅读
vim手册,使用的命令是∶
:help user-manual
为了更进一步的参考和学习,以下这本书值得推荐∶
Vim - Vi Improved - 作者∶Steve Oualline
出版社∶New Riders
这是第一本完全讲解vim的书籍。对于初学者特别有用。其中还包含有大量实例
和图示。欲知详情,请访问 http://iccf-holland.org/click5.html
以下这本书比较老了而且内容主要是vi而不是vim,但是也值得推荐∶
Learning the Vi Editor - 作者∶Linda Lamb
出版社∶O'Reilly & Associates Inc.
这是一本不错的书,通过它您几乎能够了解到全部vi能够做到的事情。此书的第
六个版本也包含了一些关于vim的信息。
本教程是由来自Calorado School of Minese的Michael C. Pierce、Robert K.
Ware 所编写的,其中来自Colorado State University的Charles Smith提供了
很多创意。编者通信地址是∶
bware@mines.colorado.edu
本教程已由Bram Moolenaar专为vim进行修订。
译制者附言∶
===========
简体中文教程翻译版之译制者为梁昌泰 <beos@turbolinux.com.cn>,还有
另外一个联系地址∶linuxrat@gnuchina.org。
繁体中文教程是从简体中文教程翻译版使用 Debian GNU/Linux 中文项目小
组的于广辉先生编写的中文汉字转码器 autoconvert 转换而成的,并对转
换的结果做了一些细节的改动。
变更记录∶
=========
2002年08月30日 梁昌泰 <beos@turbolinux.com.cn>
感谢 RMS@SMTH 的指正,将多处错误修正。
2002年04月22日 梁昌泰 <linuxrat@gnuchina.org>
感谢 xuandong@sh163.net 的指正,将两处错别字修正。
2002年03月18日 梁昌泰 <linuxrat@gnuchina.org>
根据Bram Molenaar先生在2002年03月16日的来信要求,将vimtutor1.4中译
版升级到vimtutor1.5。
2001年11月15日 梁昌泰 <linuxrat@gnuchina.org>
将vimtutor1.4中译版提交给Bram Molenaar和Sven Guckes。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
正文结束
发表评论
-
Flv在线播放器
2010-12-06 15:39 2361学习备注,分享: 参考:http://yeegoo.blog ... -
jQuery新闻列表动态显示效果
2010-12-01 10:14 4484这个效果在很多论坛,贴吧上应用,我给整理了下,将最简单的dem ... -
js时间
2010-11-03 15:45 1181<SCRIPT language="javas ... -
simplemodal 弹出对话框
2010-10-21 14:56 1344今天小小的摸索了下simplemodal,用着挺不错的,官方地 ... -
head区的其他设置
2010-09-16 16:54 957参考:http://www.w3cn.org/article/ ... -
event.keyCode与event.which及FF下对event.keyCode支持
2010-09-09 14:49 2067IE下JS可以使用event.keyCode.但是在FF下则不 ... -
css margin值 学习备注
2010-09-06 09:28 1064参考:http://www.w3school.com.cn ...
相关推荐
声明:本文全部内容为原创内容,禁止在未经授权的情况下进行任何二次创作和修改,转载请注明出处。 摘要 这篇文章将会记录如何在Ubuntu 18.04修改默认启动项和启动等待时间。 提示:尽管这篇教程是在Ubuntu 18.04下...
如果上述步骤后仍然无法使用UART,你需要手动编辑配置文件: 1. 输入`sudo vim /boot/config.txt` 2. 在文件末尾添加一行`enable_uart = 1` 3. 保存并退出,然后重启树莓派 如果你在互联网上搜索,可能会找到一篇名...
《RSMA与速率拆分在有限反馈通信系统中的MMSE基预编码实现》 本文将深入探讨RSMA(Rate Splitting Multiple Access)技术在有限反馈通信系统中的应用,特别是通过MMSE(Minimum Mean Square Error)基预编码进行的实现。速率拆分是现代多用户通信系统中一种重要的信号处理策略,它能够提升系统的频谱效率和鲁棒性,特别是在资源受限和信道条件不理想的环境中。RSMA的核心思想是将用户的数据流分割成公共和私有信息两部分,公共信息可以被多个接收器解码,而私有信息仅由特定的接收器解码。这种方式允许系统在用户间共享信道资源,同时保证了每个用户的个性化服务。 在有限反馈通信系统中,由于信道状态信息(CSI)的获取通常是有限且不精确的,因此选择合适的预编码技术至关重要。MMSE预编码是一种优化策略,其目标是在考虑信道噪声和干扰的情况下最小化期望平方误差。在RSMA中,MMSE预编码用于在发射端对数据流进行处理,以减少接收端的干扰,提高解码性能。 以下代码研究RSMA与MMSE预编码的结合以观察到如何在实际系统中应用RSMA的速率拆分策略,并结合有限的反馈信息设计有效的预编码矩阵。关键步骤包括: 1. **信道模型的建立**:模拟多用户MIMO环境,考虑不同用户之间的信道条件差异。 2. **信道反馈机制**:设计有限反馈方案,用户向基站发送关于信道状态的简化的反馈信息。 3. **MMSE预编码矩阵计算**:根据接收到的有限反馈信息,计算出能够最小化期望平方误差的预编码矩阵。 4. **速率拆分**:将每个用户的传输信息划分为公共和私有两部分。 5. **信号发射与接收**:使用预编码矩阵对信号进行处理,然后在接收端进行解码。 6. **性能评估**:分析系统吞吐量、误码率等性能指标,对比不同策略的效果。
内容概要:本文档介绍了如何使用 XEE 包从 Google Earth Engine 下载图像数据并保存为 GeoTIFF 文件。主要内容包括:1) 使用新的 ee.data.getPixels() API 和 XEE 包简化了从 GEE 提取大型数据集的过程;2) 通过 XArray 数据集和 rioxarray 工具直接处理和保存图像数据,避免了复杂的导出任务;3) 具体示例展示了如何下载肯尼亚 2021 年的 LandScan 人口网格数据,包括环境搭建、数据准备、图像处理和最终保存为 GeoTIFF 文件。 适合人群:具备一定 Python 编程基础和地理信息系统(GIS)知识的开发者或研究人员,特别是对地理空间数据分析和遥感图像处理感兴趣的用户。 使用场景及目标:① 在基于 Python 的工作流中快速高效地提取和处理托管在 GEE 上的大规模地理空间数据;② 学习如何使用 XEE 包和相关工具进行地理空间数据的下载、裁剪、投影转换和保存;③ 通过实际案例掌握地理空间数据的处理技巧,提高数据处理效率和准确性。 其他说明:此教程提供了详细的代码示例和操作步骤,帮助用户在 Google Colab 环境中完成整个数据下载和处理过程。用户需要具备一定的 Python 编程能力,并熟悉常用的地理空间数据处理工具和库,如 geopandas、rioxarray 和 xarray。此外,教程还强调了数据版权和来源的重要性,确保用户合法合规地使用数据。
内容概要:本文详细介绍了基于STM32F407的锅炉控制器系统设计,涵盖多个关键技术点。首先,在SD卡驱动方面,采用了硬件SPI配置,波特率为10.5MHz,并通过DMA发送80个空时钟进行初始化。其次,多路AD采集使用差分输入模式和DMA循环采集,配合滑动平均滤波提高效率。此外,Modbus通信部分通过结构体映射寄存器并使用硬件CRC单元进行校验。文件系统则采用FatFs结合SPI Flash缓存,确保断电保护。实时监控线程使用状态机设计,确保系统稳定性和安全性。硬件设计方面,模拟电路与数字电路分区布局,增强抗干扰能力。 适合人群:具备一定嵌入式开发基础的研发人员,特别是希望深入了解工业级项目设计的工程师。 使用场景及目标:适用于工业自动化领域的嵌入式系统开发,旨在帮助工程师掌握从硬件选型、外设驱动、数据采集到通信协议实现的全流程设计方法,提升系统的可靠性和实时性。 其他说明:文中提供了详细的代码示例和设计思路,强调了实际项目中的注意事项和常见问题解决方案,有助于读者快速上手并应用于实际项目中。
内容概要:本文详细介绍了基于MATLAB实现的配电网二阶锥最优潮流研究,重点探讨了OLTC(有载调压变压器)档位选择和123型支路的优化方法。通过构建SOCP(二阶锥规划)模型,结合YALMIP和CPLEX求解器,实现了高效的潮流优化。文中提供了详细的代码示例和解释,涵盖系统参数定义、模型构建、约束添加以及求解过程。此外,还讨论了OLTC档位选择的离散变量建模、支路类型的差异化处理、动态优化的时间轴管理等方面的技术细节。 适合人群:对电力系统优化感兴趣的科研人员、研究生及有一定编程基础的工程师。 使用场景及目标:适用于配电网优化研究和实际工程应用,旨在提高潮流计算的效率和准确性,解决传统方法在复杂约束下的不足。通过学习本文,读者可以掌握如何利用MATLAB和相关工具进行二阶锥优化,从而更好地应对电力系统中的各种挑战。 其他说明:文章附带详细的代码注释和讲解视频,帮助读者快速理解和应用所介绍的方法和技术。
前端将文件切片上传服务器返回提取码,前端通过输入提取码下载文件。 编写语言php,html,js 运行环境要求:windows 10专业版64位,Apache2.4.39,PHP7.4.3nts,MySQL5.7.26。
内容概要:本文档详细介绍了在Visual Studio Code (VSCode)中配置Python开发环境的步骤。首先,需安装Python并确保它被添加到系统的环境变量中,接着安装VSCode及其官方Python扩展,还可以安装Pylance、Jupyter等可选扩展来增强功能。然后,配置Python解释器,推荐创建和使用虚拟环境以隔离项目依赖。配置调试环境包括创建`launch.json`文件,以便能顺利运行和调试代码。此外,还应安装代码格式化和Lint工具如pylint、autopep8或black,并在VSCode的设置中启用它们,以保证代码质量和一致性。最后,文档提供了关于如何运行和调试代码以及管理项目依赖的方法,并列举了一些常见问题及解决办法。; 适合人群:初学者或有一定经验的Python开发者,希望在VSCode中搭建高效Python开发环境的人员。; 使用场景及目标:①为新项目搭建完整的Python开发环境;②优化现有开发环境,提高开发效率;③解决VSCode中Python开发遇到的基本问题。; 阅读建议:按照文档步骤顺序操作,确保每一步都成功完成再进行下一步,特别是要注意安装过程中的一些细节选项,如将Python添加到环境变量等。对于遇到的问题,可以参考文档最后列出的常见问题解答。
内容概要:本文详细介绍了基于西门子200Smart PLC的凸轮飞剪控制系统的设计与实现。主要内容涵盖硬件配置(如主轴编码器、伺服电机、触摸屏)、关键PLC编程技巧(如同步触发逻辑、高速中断处理、加减速曲线配置)、以及现场调试经验(如温度补偿、方向控制、误差处理)。文中特别强调了同步触发逻辑和加减速曲线对系统稳定性的影响,并分享了多个实用的调试技巧和技术难点解决方案。 适合人群:具备PLC编程基础的技术人员,特别是从事自动化控制领域的工程师。 使用场景及目标:适用于工业生产线中需要高精度同步控制的应用场景,如包装机、切割机等。目标是帮助技术人员理解和掌握凸轮飞剪系统的实现方法,提高生产效率和产品质量。 其他说明:文中提供了大量具体的代码示例和调试经验,有助于读者快速上手并应用于实际项目中。同时,文中提到的一些优化措施(如温度补偿、编码器断线检测等)对于提升系统的可靠性和稳定性具有重要价值。
内容概要:本文介绍了汇川H5U运动控制框架模板的特点及其应用场景。该框架提供了高度模块化的设计,使得伺服轴控、气缸控制以及与爱普生机器人的EIP通讯变得极为简便。框架内置了丰富的功能块(FB),如AxisControl_FB用于伺服轴控制,Cylinder_FB用于气缸控制,EpsonEIP_Data用于机器人通信。这些FB块不仅简化了编程流程,还集成了诸如互锁保护、超时检测等功能,极大提高了开发效率和系统稳定性。此外,框架支持结构体嵌套应用,便于参数管理和在线修改,确保项目的灵活性和可扩展性。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些希望提高开发效率、减少重复劳动的人群。 使用场景及目标:适用于各种运动控制项目,如流水线自动化、机器人控制等。主要目标是帮助工程师快速搭建稳定的控制系统,缩短开发周期,降低调试难度,提升系统的可靠性和性能。 其他说明:框架内的注释详尽且为中文,非常适合初学者理解和学习。对于有经验的工程师而言,该框架同样提供了一个高效的开发平台,能够显著提升工作效率。
内容概要:本文介绍了一个复杂的电热综合能源系统优化调度模型,该模型不仅涵盖了传统的风光储火微网,还包括了电动汽车和智能楼宇单元。模型通过线性规划求解最优调度方案,同时考虑了碳市场和绿色证书交易市场的影响。代码实现了微网各单元的初始化、优化调度的核心算法以及碳市场和绿色证书交易的成本调整。此外,模型还涉及了多时间尺度的优化问题处理、热电耦合约束、市场交易机制的设计等方面。 适用人群:从事能源优化、微网调度研究的专业人士,尤其是对碳市场和绿色证书交易感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要进行复杂微网系统优化调度的研究和应用场合,旨在降低总成本并减少碳排放,提高能源利用效率。具体目标包括优化风光储火微网的调度策略,最大化绿色证书收益,最小化碳交易成本,提升电动汽车和智能楼宇的调度灵活性。 其他说明:该模型展示了如何通过引入碳市场和绿色证书交易机制来改善微网系统的性能,提供了详细的代码实现和理论解释,有助于理解和实践相关领域的前沿技术。
内容概要:本文详细介绍了基于改进粒子群算法的园区综合能源优化调度方法及其MATLAB代码实现。文中首先分析了园区综合能源系统中的三个主要市场交易主体:系统能源运营商、分布式光伏用户和电动汽车充电代理商。接着,通过定义各主体的相关参数,建立了综合能量管理优化策略。然后,采用改进的粒子群算法对模型进行了求解,展示了粒子群算法的初始化、适应度函数定义及优化过程。最后,通过具体算例验证了该方法的有效性,特别是在冬季典型场景下的表现。文章强调了电动汽车在能源调度中的重要作用,以及改进粒子群算法在处理光伏出力突变等复杂场景时的优势。 适合人群:从事能源管理系统研究的技术人员、研究生及以上学历的科研工作者、对MATLAB编程有一定基础的学习者。 使用场景及目标:适用于希望深入了解园区综合能源系统优化调度方法的研究人员和技术人员。目标是掌握如何通过改进粒子群算法实现含电动汽车参与的能源优化调度,提高能源利用效率,降低成本。 其他说明:文章提供了详细的代码示例和解释,帮助读者更好地理解和实现该方法。同时,文中提到的多个改进点和注意事项也为进一步研究提供了方向。
在探索智慧旅游的新纪元中,一个集科技、创新与服务于一体的整体解决方案正悄然改变着我们的旅行方式。智慧旅游,作为智慧城市的重要分支,旨在通过新一代信息技术,如云计算、大数据、物联网等,为游客、旅游企业及政府部门提供无缝对接、高效互动的旅游体验与管理模式。这一方案不仅重新定义了旅游行业的服务标准,更开启了旅游业数字化转型的新篇章。 智慧旅游的核心在于“以人为本”,它不仅仅关注技术的革新,更注重游客体验的提升。从游前的行程规划、信息查询,到游中的智能导航、个性化导览,再到游后的心情分享、服务评价,智慧旅游通过构建“一云多屏”的服务平台,让游客在旅游的全过程中都能享受到便捷、个性化的服务。例如,游客可以通过手机APP轻松定制专属行程,利用智能语音导览深入了解景点背后的故事,甚至通过三维GIS地图实现虚拟漫游,提前感受目的地的魅力。这些创新服务不仅增强了游客的参与感和满意度,也让旅游变得更加智能化、趣味化。 此外,智慧旅游还为旅游企业和政府部门带来了前所未有的管理变革。通过大数据分析,旅游企业能够精准把握市场动态,实现旅游产品的精准营销和个性化推荐,从而提升市场竞争力。而政府部门则能利用智慧旅游平台实现对旅游资源的科学规划和精细管理,提高监管效率和质量。例如,通过实时监控和数据分析,政府可以迅速应对旅游高峰期的客流压力,有效预防景区超载,保障游客安全。同时,智慧旅游还促进了跨行业、跨部门的数据共享与协同合作,为旅游业的可持续发展奠定了坚实基础。总之,智慧旅游以其独特的魅力和无限潜力,正引领着旅游业迈向一个更加智慧、便捷、高效的新时代。
内容概要:本文详细介绍了如何将变频器的输出频率转换为实际线速度的方法及其Python实现。首先给出了基本的数学公式和基础版本的Python代码,然后逐步引入了单位换算、异常处理、移动平均滤波等优化措施。此外,还讨论了如何通过Modbus协议与PLC通信获取实时频率数据,并强调了参数准确性的重要性。文中提供了多个测试案例,展示了不同应用场景下的计算方法和注意事项。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是需要进行变频器相关工作的人员。 使用场景及目标:适用于需要精确控制生产线速度的各种场合,如包装生产线、输送系统等。主要目标是帮助工程师快速准确地计算并监控变频器驱动的传送带或其他机械设备的实际运行速度。 其他说明:文章不仅提供了具体的代码实现,还分享了许多实用的经验和技巧,如参数校验、单位转换、异常处理等,有助于提高系统的稳定性和可靠性。同时,作者还提到可以通过图形化界面或HMI设备进一步提升用户体验。
内容概要:本文详细介绍了基于西门子200 SMART PLC和ABB ACS510变频器构建的恒压供水系统。该系统实现了泵数量自适应、时间轮换机制、频率控制、故障替换逻辑以及多段压力控制等功能。文中通过具体的梯形图和结构化文本(ST)代码片段解释了各个功能模块的工作原理和技术细节。例如,泵数量自适应通过VB100寄存器动态调整泵的数量;时间轮换机制利用指针寻址和环形队列确保泵的均匀使用;频率控制采用PID调节,并提供PLC和变频器两种PID控制方式的选择;故障替换逻辑设有‘三次重试’机制,保障系统的可靠性;多段压力控制则通过环形缓冲区存储24小时压力设定值,优化能源消耗。此外,系统还采用了频率滞回比较算法和平滑过渡策略,使得管网压力波动保持在较小范围内。 适用人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和变频器应用有一定基础的人群。 使用场景及目标:适用于中小型项目的恒压供水系统设计与实施。主要目标是提高系统的灵活性、可靠性和能效,减少设备磨损,降低运维成本。 其他说明:文中提到的一些具体实现方法如指针寻址、环形队列、PID参数设置等,对于理解和掌握现代工业控制系统具有重要价值。同时,文中提供的代码片段可以直接用于实际工程中,帮助工程师快速搭建高效稳定的恒压供水系统。
内容概要:本文详细介绍了在MATLAB环境下使用最大重叠离散小波变换(MODWT)对心电信号(ECG)进行处理的方法。首先解释了MODWT的基本概念及其相对于传统离散小波变换的优势,特别是在处理ECG信号时能够保持平移不变性。接着阐述了具体的处理流程,包括删除伪影、滤波降噪以及检测PQRST波并确定心跳等步骤。文中提供了详细的MATLAB代码示例,展示了如何通过选择合适的小波基和分解层数来优化信号处理效果。此外,还讨论了该算法在金融时间序列、地震信号和其他生理信号处理中的广泛应用潜力。 适合人群:从事生物医学信号处理的研究人员和技术爱好者,尤其是那些希望深入了解ECG信号处理原理的人群。 使用场景及目标:适用于需要精确分析一维时间序列信号的各种应用场景,如医疗诊断系统中ECG信号的自动分析,金融市场趋势预测,地震预警系统的信号处理等。目标是提高信号处理精度,减少噪声干扰,从而获得更加可靠的数据支持决策。 其他说明:文中提到的一些具体参数设置(如阈值的选择),可以根据实际情况灵活调整。同时提醒读者,在处理长时间连续记录的信号时需要注意内存管理问题。
内容概要:本文详细介绍了基于金-氟化镁-金(MIM)结构的超表面全息技术,特别是其高效的几何相位调制和FDTD仿真方法。文章首先解释了MIM结构的独特之处,即通过磁偶极子模式降低辐射损耗,从而显著提高转换效率。接着,文章展示了如何使用FDTD Solutions进行建模,包括设置材料参数、纳米柱尺寸以及应用周期性边界条件。此外,还讨论了几何相位的计算方法及其在相位调制中的应用,并提供了具体的MATLAB代码示例。对于GS算法的应用,文中提出了改进措施以加快收敛速度并提高全息图的质量。最后,文章强调了在效率验证过程中需要注意的技术细节,如正确配置功率监视器和考虑边界效应。 适合人群:从事超表面研究、光学工程、纳米技术和电磁仿真的研究人员和技术人员。 使用场景及目标:适用于希望深入了解MIM结构在超表面全息领域的应用,掌握高效几何相位调制和FDTD仿真的具体实现方法的研究人员。目标是帮助读者理解并复现实验室级别的高效率超表面全息系统。 其他说明:文章不仅提供了详细的理论背景,还包括了大量的代码片段和实践经验,有助于读者更好地理解和应用相关技术。
内容概要:本文档详细介绍了示波器的基础知识,包括其工作原理、分类、关键组件(如CRT、偏转系统、触发系统等)以及各种控制功能。文章首先解释了示波器与普通电压表的区别,强调了示波器能以图形方式显示电压随时间的变化。接着深入探讨了模拟示波器的构造和工作方式,如垂直和水平偏转系统、灵敏度控制、耦合方式、带宽、上升时间等。随后介绍了数字存储示波器(DSO)的特点,包括数字存储、采样和数字化、预触发和后触发、峰值检测等功能。文档还对比了模拟示波器和DSO的优缺点,指出组合示波器兼具两者优势。最后,文档讨论了探头的工作原理、类型及其它附件和软件,帮助用户选择合适的示波器和探头。 适用人群:电子工程师、技术人员、科研人员以及对示波器有兴趣的学习者。 使用场景及目标:①理解示波器的工作原理和基本构造;②掌握模拟示波器和数字存储示波器的操作方法及应用场景;③选择合适的示波器和探头进行电路测试和信号分析;④利用示波器的高级功能(如预触发、峰值检测、自动测量等)提高工作效率。 其他说明:本文档不仅提供了理论知识,还结合实际应用案例,帮助读者更好地理解和使用示波器。文档内容详尽,涵盖了从基础到高级的各种知识点,适合不同层次的读者学习和参考。
内容概要:本文详细介绍了力士乐伺服调试软件IndraWorks Ds 14V24 P5与15V16版本的调试经验和参数优化方法。主要内容涵盖参数映射规则、PID增益设置、通讯配置、心跳检测脚本、速度环调试、轴参数互锁机制、VBA脚本应用、XML配置管理、实时曲线对比、参数备份策略等方面。特别强调了不同版本之间的兼容性和特殊调试技巧,如惯量比设置、加速度斜坡时间调整、动态磁链补偿等。此外,还提供了多个实用的调试工具和技术细节,帮助工程师提高工作效率并解决常见问题。 适合人群:从事伺服控制系统调试的技术人员、自动化工程师以及相关领域的研究人员。 使用场景及目标:适用于力士乐伺服系统的安装、调试和维护过程中,旨在帮助工程师快速掌握关键调试技巧,优化系统性能,减少调试时间和错误发生率。 其他说明:文中提供的具体参数设置和脚本代码均经过实际验证,能够显著提升调试效果。建议读者结合自身应用场景灵活运用这些技术和经验。
数据说明: 这个数据集包含的所有150只宝可梦都来自第一世代。每只宝可梦有大约25到50张图像。所有图片都以宝可梦为中心。大多数(不是全部)图像质量相对较高(有正确的标签且居中)。这些图像的分辨率不是非常高,因此非常适合一些轻度的分类学习。