[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ A ] [ B ] [ C ] [ D ] [ 下一页 ]


Debian 教程 (过时文档)
第 8 章 - 创建和编辑文本文件


8.1 什么是文本文件?

文本文件 只是碰巧包含人类可读文本的普通文件。 除此之外,它没有什么特别之处。 另一种文件,二进制文件,旨在由计算机解释。

如果您安装了 less 文件分页器(如果您没有安装,请安装它,它非常有用),您可以使用它查看任何类型的文件。 键入 less /etc/profile 以查看示例文本文件 --- 请注意,即使它们的含义晦涩难懂,您也可以读取字符。 键入 less /bin/ls 以查看二进制文件; 正如您所见,ls 程序并非旨在供人类阅读。

两种文件之间的区别纯粹在于它们包含的内容,这与其他一些系统(例如 DOS 或 MacOS)不同,后者实际上以不同的方式处理文件。

文本文件可以包含 shell 脚本、文档、版权声明或任何其他人类可读的文本。

顺便说一句,这说明了源代码二进制可执行文件之间的区别。 /bin/ls 是您可以从 Debian 下载的二进制可执行文件,但您也可以下载一个文本文件,该文件告诉计算机如何创建 /bin/ls。 此文本文件就是源代码。 比较 /bin/ls/etc/profile 说明了如果有人想理解和修改一个软件,源代码有多么重要。 自由软件为您或您的顾问提供所有这些重要的源代码。


8.2 文本编辑器

文本编辑器 是用于创建和更改文本文件内容的程序。 大多数操作系统都有文本编辑器; DOS 有 edit,Windows 有 Notepad,MacOS 有 SimpleText

Debian 提供了令人眼花缭乱的各种文本编辑器。 viemacs 是经典的两个,可能都是最强大和使用最广泛的。 viemacs 都相当复杂,需要一些练习,但它们可以使编辑文本变得非常高效。 emacs 既可以在终端中运行,也可以在 X Window 系统下运行; vi 通常在终端中运行,但 vim 变体有一个 -g 选项,允许它与 X 一起工作。

更简单的编辑器包括 neditaejedxcoralneditxcoral 提供了易于使用的 X Window 系统图形界面。 还有几个 vi 变体,以及一个名为 XEmacs 的 Emacs 变体。

本教程不会详细介绍任何特定编辑器的使用,尽管我们将简要介绍 vi,因为它体积小、速度快、几乎总是可用,并且无论您喜欢哪种编辑器,您有时可能都需要使用它。 Emacs 提供了自己优秀的交互式教程; 要阅读它,请使用 emacs 命令加载 Emacs,然后键入 F1 t。 对于对通用或编程编辑器感兴趣的新用户来说,Emacs 是一个极好的选择。


8.3 使用 vi 创建和编辑文本文件

vi(发音为 "vee eye")实际上是几乎每个类 Unix 操作系统都附带的唯一编辑器,Debian 也不例外。 vi 最初是在加利福尼亚大学伯克利分校编写的。 编辑器的名称是 "visual" 的缩写,指的是 vi 提供了文本文件的可视化显示; 这曾经被认为是一个独特的功能,让您了解该程序有多老。

vi 有些难以习惯,但具有许多强大的功能。 总的来说,我们建议新用户使用 Emacs 进行日常任务,例如编程。 但是,vi 有时更方便或唯一可用的编辑器; 它也是一个更小的文件可供下载。

以下关于 vi 的讨论也应适用于 vi 变体,例如 elvisvim


8.3.1 创建文件

  1. vi testfile

    在您的主目录中,通过键入 vi 后跟您要创建的文件名来调用 vi。 您将看到一个屏幕,左侧有一列波浪号 (~)。 vi 现在处于命令模式。 您键入的任何内容都将被理解为命令,而不是要添加到文件的内容。 为了输入文本,您必须键入命令。

  1. i

    两个基本的输入命令是 i,意思是“将我即将键入的文本插入到光标的左侧”,以及 a,意思是“将我即将键入的文本追加到光标的右侧”。 由于您正处于空文件的开头,因此这两个命令都可以使用。 我们任意选择了 i

  1. 键入一些文本; 如果您想不出自己的,这里是哲学家查尔斯·桑德斯·皮尔斯的一句深刻的陈述

         And what, then, is belief? It is the demi-cadence 
         which closes a musical phrase in the symphony of our 
         intellectual life.  We have seen that it has just 
         three properties: First, it is something that we are
         aware of; second, it appeases the irritation of doubt; 
         and, third, it involves the establishment in our 
         nature of a rule of action, or, say for short, a 
         habit.
    

    在每行之后按 RET,因为 vi 不会自动移动到下一行; 完成键入后,按 ESC 键离开插入或追加模式并返回到命令模式。

  1. :wq

    如果您已正确完成所有操作,当您键入此命令时,它应该出现在屏幕底部,所有 ~ 字符下方。 : 告诉 vi 您即将给出 series of commands; w 表示写入您刚刚键入的文件 --- 在大多数新程序中,这称为 “保存” --- q 表示退出 vi。 因此,您应该回到 shell 提示符。

  1. cat testfile

    cat 将在屏幕上显示您键入的文件。

不要删除 testfile,我们将在下一个教程部分中使用它。

当您使用 vi 时,始终记住按 ESC 将使您返回到命令模式。 因此,如果您感到困惑,请按 ESC 几次并重新开始。

vi 有一个烦人的倾向,即每当您做一些不应该做的事情时,例如键入未知命令时,它都会发出哔哔声; 不必为此感到惊慌。


8.3.2 编辑现有文件

要使用 vi,您只需要阅读 在文件中移动,第 8.3.2.1 节删除文本,第 8.3.2.2 节。 后面的章节解释了高级功能,但它们不是绝对必要的,尽管通常更有效率且不那么繁琐。


8.3.2.1 在文件中移动

要在文件中移动,Debian 的 vi 允许您使用箭头键。 然而,传统的键也有效; 它们是 h 代表左,j 代表下,k 代表上,l 代表右。 选择这些键是因为它们在键盘的主行上相邻,因此易于键入。 许多人使用它们而不是箭头键,因为它们更容易用手指触及。

  1. vi testfile

    使用 vi 打开您之前创建的文件。 您应该看到您之前键入的文本。

  1. 使用箭头键或 hjkl 键在文件中移动。 如果您尝试在任何方向上移动太远,vi 将发出哔哔声并拒绝这样做; 如果您想在那里放置文本,则必须使用插入命令,例如 ia

  1. :q

    退出 vi


8.3.2.2 删除文本

  1. vi testfile

    再次打开您的练习文件。

  1. dd

    dd 命令删除一行; 文件的第一行现在应该消失了。

  1. x

    x 删除单个字符; 第二行的第一个字母将被擦除。 出于历史原因 [13],删除键和退格键在 vi 中不起作用。 一些 vi 变体,例如 vim,将允许您使用退格键和删除键。

  1. 10x

    如果您在命令前键入一个数字,它将重复该命令多次。 因此,这将删除 10 个字符。

  1. 2dd

    您也可以将数字与 dd 命令一起使用,删除两行。

  1. :q

    这会导致错误,因为您已更改文件但尚未保存。 有两种方法可以避免这种情况; 您可以 :wq,从而在退出时写入文件,或者您可以不保存就退出

  1. :q!

    使用感叹号,您告诉 vi 您是认真的,即使文件未保存,它也应该退出。 如果您使用 :q!,您的删除将不会保存到 testfile; 如果您使用 :wq,它们将被保存。

  1. cat testfile

    回到 shell 提示符,查看 testfile。 如果您使用了 :wq,它现在应该更短了,如果您使用了 :q!,则保持不变。

:q! 是一个优秀的命令,值得记住,因为如果您感到非常困惑并且感觉自己破坏了正在编辑的文件,您可以使用它来摆脱困境。 只需按 ESC 几次以确保您处于命令模式,然后键入 :q!。 这保证让您退出 vi 而不会造成任何损害。

您现在知道执行基本编辑所需的一切; 插入、删除、保存和退出。 以下各节描述了更快地执行操作的有用命令; 如果您愿意,可以跳过它们。


8.3.2.3 高级移动

有很多移动命令,这是一个快速摘要

w

移动到下一个单词的开头

e

移动到下一个单词的末尾

E

移动到空格前下一个单词的末尾

b

移动到上一个单词的开头

0 (零)

移动到行首

^

^

$

移动到当前行的第一个单词

$

移动到行尾

-

RET

移动到下一行的开头

-

移动到上一行的开头

G

移动到文件末尾

1G

移动到文件开头

nG

移动到第 n

C-G

显示当前行号

H

屏幕顶部行

M

屏幕中间行|

L

屏幕底部

|

将光标移动到第 n

当光标到达屏幕顶部或底部时,屏幕将自动滚动。 还有一些替代命令可以控制文本的滚动。

C-f

向前滚动一屏

C-b

向后滚动一屏

C-b


C-d

向下滚动半屏

C-u

8.3.2.4 重复命令


如上所述,您通常可以在命令前加上数字以重复该命令多次。 例如,l 键向左移动; 10l 将您向左移动 10 个位置。

如果您想在某些文本前面输入多个空格,您可以在插入命令中使用数字。 输入数字 n,然后输入 i,后跟 SPACEESC。 您应该得到 n 个空格。

处理行的命令使用数字来引用行号。 G 是一个很好的例子; 如果您在它前面加上一个数字,它将转到该行。

8.3.2.5 高级参考

本节提供了您可以使用的更全面的命令列表。 这只是一个参考; 如果您愿意,可以尝试这些命令以查看它们的作用。

插入命令

a

i

追加到光标右侧

A

在行尾追加

i

在光标左侧插入文本

I

在当前行上第一个非空白字符的左侧插入文本

o

x

在当前行下方打开新行并插入文本

O

在当前行上方打开新行并插入文本

dd

删除命令

x

删除光标下的字符

dw

从当前位置删除到单词末尾

dd

删除当前行。

D

从当前位置删除到行尾

组合命令可以更强大。 特别是,d 后跟移动命令会从光标删除到您要求移动的任何位置。 一些例子

dnw

删除 n 个单词(ndw 也有效)

dG

从当前位置删除到文件末尾

d1G

从当前位置删除到文件开头

d$

从当前位置删除到行尾(与 D 相同)

dn$

从当前行删除到第 n 行的末尾

撤消命令

u

撤消上一个命令

U

撤消对当前行的所有更改

:e!

“再次编辑”。 就像使用 :q! 退出并重新启动一样 --- 使您返回到上次执行 :w 保存的时间。

您可以撤消撤消,因此 uu 会导致撤消的撤消,或者没有更改。

替换命令

rc

将光标下的字符替换为 c

R

覆盖文本

cw

更改当前单词

c$

从当前位置更改文本到行尾

cnw

更改接下来的 n 个单词。(与 ncw 相同)

cn$

更改到第 n 行的末尾

C

更改到行尾(与 c$ 相同)

cc

更改当前行

s

用您键入的文本替换当前字符

ns

用您键入的文本替换接下来的 n 个字符

上述列表中允许您输入多个字符文本的命令必须使用 ESC 键退出,使您返回到命令模式。

剪切和粘贴首先涉及复制(剪切或复制)一些文本并将其放入缓冲区(或“剪贴板”); 然后移动到所需的新位置; 然后粘贴文本。

要剪切文本,请使用 y 命令及其变体

yy

复制当前行的副本

nyy

复制接下来的 n

yw

复制一个单词

ynw

复制 n 个单词

y$

复制光标和行尾之间的文本

粘贴命令

p

粘贴到光标右侧

P

粘贴到光标左侧

nP

粘贴 n 个副本到光标左侧

在 xterm 中或使用支持 X 的 vi 变体时,您也可以使用鼠标复制文本。 请参阅 X Window 系统,第 10 章,了解如何在 X 中复制和粘贴; 确保您在粘贴时处于插入模式,否则粘贴的文本将被解释为命令。

当您删除时,删除的文本将被复制到缓冲区(剪贴板); 然后您可以使用粘贴命令。 这允许您剪切和粘贴,而 y 命令会导致复制和粘贴。

vi 具有搜索文本的命令。 如果您想移动到特定单词或字符,您也可以将这些用作移动命令。

最简单的搜索命令是查找字符。

fc

查找当前位置右侧或下方的下一个字符 c

;

Fc

,

查找当前位置左侧或上方的下一个字符 c

tc

向右移动到下一个 c 之前的字符。

Tc

向左移动到上一个 c 之后的字符。

;

屏幕中间行

重复上一个字符搜索命令

,

; 相同,但反转原始命令的方向。

如果未找到您要搜索的字符,vi 将发出哔哔声或发出其他某种信号。 vi 允许您搜索任何文本,而不仅仅是字符。

/text


[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ A ] [ B ] [ C ] [ D ] [ 下一页 ]


Debian 教程 (过时文档)

向右和向下搜索 text 的下一个出现位置。

?text