文章目录
vi是Visual interface 的简称,可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的功能。
提示:以下是本篇文章正文内容,下面案例可供参考
vi有三种基本模式:普通模式、插入模式和命令行模式
进入vi之后就是普通模式(这是默认模式)。在这个模式中,你可以使用 “上下左右 ” 按键来移动光标,你可以使用“d” 或 “dd” 来处理文件内容,也可以使用“yy”和“p”来处理文件的内容。
.d:删除单个字符
dd:删除整行
yy:复制整行
p: 粘贴
在普通模式中可以进行删除、复制、粘贴等操作,但是无法编辑文件内容需按下“i、I、o、O、a、A、r、R”等任何一个字母之后才会进入编辑模式,如果要回到普通模式可以按【Esc】这个按键退出编辑模式。
i:插入命令
a:附加命令
o:打开命令
c:修改命令
r:取代命令
在一般模式当中,输入“:/?”三个当中任意一个,就可以进入命令行模式,该模式可以保存、退出、查找、显示行号等操作。
q!: 强制退出
w!:强制保存
wq:保存退出
set nu :显示行数
下表列出了vi文本编辑器的方式及说明
| 方式 | 说明 |
|---|---|
| vi | 进入vi的默认模式 |
| vi filename | 打开新建文件filename |
| vi -r filename | 打开vi编辑时发生系统崩溃时的文件filename,并恢复它 |
| 命 | 说明 |
|---|---|
| G | 将光标一直最后一行 |
| ng | 将光标移至第n行行首 |
| n+ | 将光标下移n行 |
| n- | 将光标上移n行 |
| n$ | 将光标移至n行尾 |
| 0 | 将光标移到所在行的行首 |
| 命令 | 说明 |
|---|---|
| /ab | 向光标下查找一个名为ab的字符串 |
| ?ab | 向光标上查找一个名为ab的字符串 |
| n | 英文按键n,代表重复前一个查找的操作 |
| N | 英文按键N,与n相反,为方向前一个查找操作 |
删除
| 命令 | 说明 |
|---|---|
| x | 删除光标处的字符 |
| dw | 删除一个单词 |
| db | 删除光标前的一个词 |
| dd | 删除光标所在行 |
| dG | 删除光标位置到最后一行的位置 |
| d$ | 删除光标位置到当前行的末尾的内容 |
| nx | 删除从光标开始向右的n个字符 |
| ndw | 删除n个指定的单词 |
| ndb | 删除所在位置之前的n个词 |
| ndd | 删除当前行及其后n-1行的内容 |
| d1G | 删除光标所在位置到第一行的内容 |
复制与粘贴
| 命令 | 说明 |
|---|---|
| yy | 复制当前行到缓冲区 |
| nyy | 将当前开始的n行开始复制到缓冲区 |
| yG | 将当前开始光标位置到最后一行的内容复制到缓冲区 |
| y1G | 将当前光标位置到第一行的内容复制到缓冲区 |
| p | 将缓冲区的内容写到光标所在的位置 |
| u | 撤销前一次操作 |
vi的插入模式可以从普通模式按 “i” 进入,
若要退出普通模式则按键盘左上角的【Esc】按键。
vi的命令行模式可以从普通模式按“:”进入,命令模式的常用命令如下:
| 命令 | 说明 |
|---|---|
| :w | 将编辑的内容保存 |
| :w! | 强制保存 |
| :q | 退出vi |
| :q! | 若修改过文件则不保存强制退出 |
| ZZ | 若文件没修改,则不保存退出,若修改,则保存退出 |
| :w fn | 另存为新文件fn |
| :set nu | 显示行号 |
| :set nonu | 取消显示行号 |
提示:vim是vi的升级版,vi拥有的功能vim都拥有,可以使用vim编辑更清晰
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我使用“newapp_name”创建了一个新的Rails应用程序,我正在尝试编辑.gitignore文件,但在我的应用程序文件夹中找不到它。我在哪里可以找到它?我安装了Git。 最佳答案 .gitignore位于项目的root中,而不是app子目录中。首先打开终端并进入您的目录。您需要使用ls-a来显示stash文件。然后使用打开.gitignore 关于ruby-on-rails-尝试打开.gitignore以在文本编辑器中对其进行编辑,但在OSXMountainLion上找不到文件位
Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好
文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分
如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack
尝试使用bundleopen命令打开gem源代码,accordingtoofficialdocumentationandinstruction.因此,我在.profile中导出编辑器:exportBUNDLER_EDITOR=viexportEDITOR=vi并尝试打开例如rails使用控制台的源代码:bundleopenrails出现错误CouldnotlocaleGemfile[ruby-2.1.1][~/]$:rails-vRails4.0.3[ruby-2.1.1][~/]$:bundle-vBundlerversion1.5.3[ruby-2.1.1][~/]$:bundle
我在LinuxMint17.2上。我最近使用apt-getpurgeruby删除了ruby。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,
我有一个存储JSON数据的列。当它处于编辑状态时,我不知道如何显示它。serialize:value,JSON=f.fields_for:valuedo|ff|.form-group=ff.label:short=ff.text_field:short,class:'form-control'.form-group=ff.label:long=ff.text_field:long,class:'form-control' 最佳答案 代替=f.fields_for:valuedo|ff|请使用以下代码:=f.fields_for:va
我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby所需的包和安装过程;它引
我正在使用Rails4并遇到以下错误。RoutingErrorNoroutematches[POST]"/logs/1/meals/13/edit我正在使用:meal传递模型对象的form_for,并且编辑页面正确呈现。但是,Rails似乎并没有检查膳食对象是否已经保存,因此它一直尝试将表单发送到#create操作并尝试发出POST请求,而不是将表单发送到更新操作并进行当我点击提交时一个PUT请求。我如何让form_for识别我正在尝试更新现有对象并且需要PUT而不是POST?其他一切正常,我已经运行了所有迁移。我是Rails的新手,几乎一整天都在尝试自己解决这个问题。请帮忙!请注意,