53、12. 假设一个文件的权限允许你写入该文件,但不允许你删除它。a. 给出一个不调用编辑器来清空文件的命令。b. 解释你为何可以有修改文件的权限却没有删除文件的权限。
a. 可以使用命令 > 文件名 来清空文件,例如 > example.txt 。
b. 文件的删除权限通常由文件所在目录的写权限控制,而修改文件的权限由文件本身的写权限控制。如果用户对文件有写权限,但对文件所在目录没有写权限,那么用户就可以修改文件内容,但无法删除该文件。
54、为什么noclobber变量不能保护你在使用cp或mv命令时覆盖现有文件?
noclobber 仅能防止通过重定向覆盖文件,而不能阻止使用 cp 或 mv 覆盖文件。 cp 和 mv 工具包含 -i (交互式)选项,可在你尝试覆盖文件时验证你的意图,从而帮助你避免此类错误。
55、创建一个名为answer的文件并执行以下命令:$ > answers.0102 < answer cat。解释该命令的作用和原因,更传统的表达方式是什么?
该命令尝试将文件 answer 的内容通过标准输入传递给 cat 命令,并将 cat 命令的输出重定向到文件 answers.0102 中。不过命令格式有误,正确格式应该是:
cat < answer > answers.0102
更传统的表达方式就是直接用 cat 命令从输入文件读取内容并输出到目标文件,即:
cat answer > answers.0102
56、如何使vim进入输入模式?如何使vim恢复到命令模式?
要使 Vim 进入输入模式,按 i (在光标前插入)键或 a (在光标后追加)键;要使 Vim 恢复到命令模式,按 ESCAPE 键。
57、哪个命令可以将所有出现的“this week”替换为“next week”?
可以使用替代修饰符的全局替换语法:
!!:gs/this week/next week/
或者使用快速替换形式:
^this week^next week^ (可省略最后一个 ^ )
58、考虑以下场景:你启动 vim 编辑一个现有文件。你对文件做了很多修改,然后意识到在编辑会话早期删除了文件的一个关键部分。你想找回该部分,但不想丢失其他所有修改。你会怎么做?
若删除关键部分后执行了其他 vim 命令,无法用撤销命令恢复时,可使用 "1p 命令将最近删除的文本块粘贴到光标位置下方。
若删除了多个文本块且要找回特定的一个,先使用 "1p 粘贴第一个缓冲区的内容,若不是所需文本,用 u 撤销粘贴操作,再用 . 命令重复上一个命令,依次尝试九个编号缓冲区。
59、命名缓冲区与通用缓冲区有何不同?
与通用缓冲区不同,除非你发出专门覆盖该缓冲区内容的命令,否则 Vim 不会改变命名缓冲区的内容。Vim 编辑器在整个编辑会话期间都会保留命名缓冲区的内容。
60、假设你的vim版本不支持多次撤销命令。如果你删除了一行文本,然后删除了第二行,接着又删除了第三行,你会使用哪些命令来恢复你删除的前两行文本?
可以使用 1p 粘贴最近一次删除的文本,若该文本不是所需的,用 u 撤销粘贴操作,再用 . 命令,它会粘贴下一个缓冲区( 2 )的内容,若还不是所需的,重复 u 和 . 操作,依次类推,直到恢复前两行删除的文本。
61、哪个命令可以将光标移动到当前段落的末尾?能否使用此命令以段落为单位在缓冲区中移动?
`META - }` 命令可以将光标移动到当前段落的末尾。可以使用此命令以段落为单位在缓冲区中移动,只需在该命令前加上重复计数(`CONTROL - U` 后跟一个数字参数)即可。
62、在处理一个段落一段时间后,很可能有些行变得太短,而有些行变得太长。是否有一个命令可以“整理”段落,而无需手动重新断行?
可以使用 META-q 来重新填充当前段落,或使用 META-x fill-region 来重新填充区域(点和标记之间)中的每个段落。
63、如何交换两个单词的位置?
可以使用META - t命令,该命令能将光标前的单词与光标后的单词进行交换。
64、给定一段文本,其第2行和第3行顺序颠倒了。你能想到多少种仅使用键盘来纠正这种情况的方法?
可以使用以下两种方法:
- 移动光标到第2行开头,输入
CONTROL - U 2 CONTROL - K来剪切两行,移动光标到目标位置(此处应是第3行原本位置),输入CONTROL - Y粘贴; - 移动光标到第2行开头,输入
CONTROL - U 2 CONTROL - K CONTROL - Y来剪切并立即粘贴回两行,移动光标到目标位置,输入

最低0.47元/天 解锁文章
2061

被折叠的 条评论
为什么被折叠?



