-
Notifications
You must be signed in to change notification settings - Fork 28
/
learn-vi-18-ManipulateFile.html
71 lines (63 loc) · 7.49 KB
/
learn-vi-18-ManipulateFile.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="learn-vi.css" />
<title>VIM学习笔记 操作文件(Manipulate File)</title>
</head>
<body>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">文件信息</p>
<p>使用以下命令,可以显示当前文件的名字、状态以及行列相关的信息:</p>
<p style="text-indent:2em"><code class="inset">:file</code></p>
<p><span style="background-color:black; color:white">"test.txt" [Modified] 134 lines --55%--</span></p>
<p>使用以下命令,则可以显示当前文件的总行数:</p>
<p style="text-indent:2em"><code class="inset">:=</code></p>
<p>使用<code class="inset">g-Ctrl-g</code>命令,将在状态栏下方显示整个文档的字数和行数,以及当前所处的位置。</p>
<p><a href="https://www.flickr.com/photos/yyq123/5383461626/" title="g-ctrl-g by yyq123, on Flickr"><img src="http://farm6.static.flickr.com/5204/5383461626_7168efc64a.jpg" width="500" height="10" alt="g-ctrl-g" /></a></p>
<p>如果想要统计当前行的字数,首先移动到行尾,然后使用<code class="inset">v</code>命令进入可视化模式,使用<code class="inset">0</code>命令移动到行头并选中整行文字,最后使用<code class="inset">g-Ctrl-g</code>命令显示选中文本的字数。</p>
<p>在插入模式下,使用<code class="inset"><C-R>%</code>命令,或者在常规模式下,使用<code class="inset">"%p</code>命令,可以将当前文件名粘贴到文本中。</p>
<p>使用以下命令,可以在文本中查找当前文件名:</p>
<p style="text-indent:2em"><code class="inset">/<C-R>%</code></p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">查看文件</p>
<p>使用<code class="inset">:view file</code>命令,将以只读方式打开文件。</p>
<p>使用<code class="inset">:set ro</code>命令,会将当前文件置为只读状态。你在文件中进行的任何修改,都无法保存。当然我们也可以使用<code class="inset">:write!</code>命令,来强制保存文件。</p>
<p><a href="https://www.flickr.com/photos/yyq123/31602573153/in/dateposted/" title="E45"><img src="https://c1.staticflickr.com/1/438/31602573153_6835759ac6.jpg" width="490" height="23" alt="E45" /></a></p>
<p>使用<code class="inset">:set noma</code>命令,可以将当前文件置为不可修改状态,Vim会阻止任何修改操作。</p>
<p><a href="https://www.flickr.com/photos/yyq123/32374306316/in/dateposted/" title="E21"><img src="https://c1.staticflickr.com/1/327/32374306316_2678a19fbf.jpg" width="450" height="23" alt="E21" /></a></p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">新建文件</p>
<p>使用<code class="inset">:vi file</code>命令,在新建缓冲区中编辑名为file的新文件。如果当前文件没有保存,那么将会显示警告信息,此时可以输入<code class="inset">:write</code>命令,来保存当前文件。</p>
<p><a href="https://www.flickr.com/photos/yyq123/29748828773/in/photolist-MjNwmV" title="E37"><img src="https://farm6.staticflickr.com/5447/29748828773_8269a78cdd_o.png" width="429" height="20" alt="E37" /></a></p>
<p>使用<code class="inset">:vi! file</code>命令,将不保存当前文件而强制开始编辑新文件。</p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">另存文件</p>
<p>使用以下命令,可以将当前文件另存为以name命名的新文件,并在当前缓冲区中开始编辑新文件:</p>
<p style="text-indent:2em"><code class="inset">:file name</code></p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">goto file</p>
<p>如果当前文件中包含了其他文件名,那么我们可以移动到文件名位置,然后直接使用<code class="inset">gf</code>命令在新的<a href="http://yyq123.blogspot.com/2009/07/vim-buffer.html">缓冲区</a>中打开链接的文件。例如下图所示,在HTML文件中引用了CSS文件,那么只需要在CSS文件名处执行gf命令,Vim就会在当前文件夹中查找并打开引用的CSS文件。</p>
<p><a href="https://www.flickr.com/photos/yyq123/32345473643/in/dateposted/" title="gf"><img src="https://c1.staticflickr.com/1/764/32345473643_3ea0fdb73e.jpg" width="500" height="20" alt="gf" /></a></p>
<p>如果文件名中没有指明扩展名称,那么可以使用以下命令来指定gf需要查找的文件类型:</p>
<p style="text-indent:2em"><code class="inset">:set suffixesadd+=.rb</code></p>
<p>如果我们希望gf在多个文件夹中尝试查找并打开文件,那么可以使用以下命令来定义文件夹列表:</p>
<p style="text-indent:2em"><code class="inset">:set path+=D:/Anthony_GitHub/learn-vim/**</code></p>
<p>使用以下命令可以查看当前path选项的设置:</p>
<p style="text-indent:2em"><code class="inset">:set path?</code></p>
<p><a href="https://www.flickr.com/photos/yyq123/32801965850/in/dateposted/" title="set_path"><img src="https://c1.staticflickr.com/1/624/32801965850_1e625d31ec_o.png" width="401" height="21" alt="set_path" /></a></p>
<p>其中,“.”代表当前文件夹下的所有文件;“**”代表所有子文件夹;“,”用于分隔多个文件夹。</p>
<p>我们也可以使用<code class="inset">ctrl-Wf</code>命令,在新的分割窗口中打开光标下文件。</p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">最近打开文件</p>
<p>使用以下命令,可以显示最近打开文件的列表:</p>
<p style="text-indent:2em"><code class="inset">:old</code></p>
<table summary="Commands" border="2" frame="hsides" rules="all" cellspacing="0" cellpadding="3">
<caption>命令小结</caption>
<tr><td><code class="inset">gf</code></td><td>打开以当前光标下文字命名的文件</td></tr>
<tr><td><code class="inset">:file</code></td><td>显示当前文件的名字、状态以及行列信息</td></tr>
<tr><td><code class="inset">:=</code></td><td>显示当前文件的总行数</td></tr>
<tr><td><code class="inset">g-Ctrl-g</code></td><td>显示行列信息和字数统计</td></tr>
<tr><td><code class="inset">:set ro</code></td><td>将当前文件置为只读状态</td></tr>
<tr><td><code class="inset">:set noma</code></td><td>将当前文件置为不可修改状态</td></tr>
<tr><td><code class="inset">:vi</code></td><td>新建文件</td></tr>
<tr><td><code class="inset">:view</code></td><td>以只读方式打开文件</td></tr>
</table>
<p style="border-top:1px solid lightgray"><span style="float:right">Ver: 2.0 | <a href="mailto:[email protected]">YYQ</a></span><span><<a title="参数(args)" href="http://yyq123.github.io/learn-vim/learn-vi-16-MultiArguments.html">上一篇</a> |<a title="笔记列表" href="http://yyq123.github.com/learn-vim/learn-vi-00-List.html"> 目录 </a>| <a title="编辑多个文件(Edit Multiple Files)" href="http://yyq123.github.io/learn-vim/learn-vi-17-MultiFile.html">下一篇</a>></span></p>
</body>
</html>