Linux下常见的文本编辑器有:
诸如此类,但我们只需要掌握vi/vim即可
vi编辑器是linux和unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
vi编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
vim是vi的增强版,比vi更容易使用。vi的命令几乎都可以在vim上使用。
•vi/vim是一种纯文本编辑器,它不像word可以排版,可以调整字体大小,可以改变字体等等。
•vi/vim只是一个文本编辑工具,只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等
•全屏幕显示
vi/vim编辑器有三种编辑模式,分别是:
命令模式
输入模式
末行模式
| 编辑模式 | 作用 |
|---|---|
| 命令模式 | 用户执行命令,比如复制行、粘贴行等 |
| 输入模式 | 用于输入文本、修改文本等 |
| 末行模式 | 用于查找文本、保存修改等 |
vi/vim三种编辑模式之间的转换的方式:
命令模式—>输入模式
i:insert,在当前光标所在字符的前面,转为输入模式
I:大写的i,在当前光标所在行的行首转换为输入模式
a:append,在当前光标所在字符的后面转换为输入模式
A:在当前光标所在行的行尾转换为输入模式
o:open,在当前光标所在行的下方新建一行并转为输入模式
O:大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式
输入模式—>命令模式
ESC
命令模式—>末行模式
Shift+:
末行模式—>命令模式
ESC
打开文件方式:文件打开后默认处于命令模式下
vim filename //打开文件
vim +n filename //打开文件并定位到第n行
vim +/pattern filename //打开文件并定位到第一次被/pattern匹配到的内容行首
关闭文件方式:末行模式关闭文件
| 命令 | 意义 |
|---|---|
| q | 退出 |
| q! | 不保存退出 |
| w | 保存但不退出 |
| w! | 强行保存 |
| wq | 保存并退出 |
| wq! | 强行保存并退出 |
| x | 强行保存并退出 |
命令模式关闭文件
ZZ //保存退出
命令模式下移动光标的方式
h:向左移动一个字符
l:向右移动一个字符
j:向下移动一个字符
k:向上移动一个字符
#h:向左移动#个字符
#l:向右移动#个字符
#j:向下移动#个字符
#k:向上移动#个字符
以单词为单位移动
w:移动到下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或上一个单词的词首
#w:以当前光标为起点跳至第#个单词的词首
#e:以当前光标为起点跳至第#个单词的词尾
#b:以当前光标为起点跳至第#个单词的词首
行内跳转
0:数字0,跳转到绝对行首
^:跳转到行首的第一个非空白字符
$:跳转到绝对行尾
行间跳转
gg:跳转到第一行
G:跳转到最后一行
#gg:跳转到第#行
#G:跳转到第#行
翻屏
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
ctrl+d:向下翻半屏
ctrl+u:向上翻半屏
命令模式下字符编辑:
| 编辑命令 | 意义 |
|---|---|
| x | 删除光标所在处的单个字符 |
| #x | 删除光标所在处及其向后共#个字符 |
| xp | 交换光标所在处的字符及其后面字符的位置 |
命令模式下删除字符:d
命令模式下d命令与其它命令组合使用:
d$:表示删除当前光标所在位置到行尾的内容
d^:表示删除当前光标所在位置到第一个行首非空白字符位置的内容
d0:表示删除当前光标所在位置到绝对行首的内容
dd:删除当前光标所在行整行
#dd:删除包括当前光标所在行在内的#行
D:删除当前光标所在行的内容,保留空行
dG:从光标所在行删除到文件尾
末行模式下d命令的使用:
语法:“:StartADD,EndADDd”
这里的StartADD与EndADD是指一个范围,例如:
:1,5d //表示删除第1到第5行
末行模式下范围表示方法:
| 表示方法 | |
|---|---|
| . | 光标所在当前行 |
| $ | 最后一行 |
| +# | 光标所在行往后#行 |
| $-# | 倒数第#行 |
| % | 全文 |
命令模式下复制命令:yy
命令模式下粘贴命令:p
p:小写p
若删除或复制的为整行内容,则粘贴至光标所在行的下方
若删除或复制的为非整行,则粘贴至光标所在字符的后面
P:大写p
若删除或复制的为整行内容,则粘贴至光标所在行的上方
若删除或复制的为非整行,则粘贴至光标所在字符的前面
命令模式下替换:r
R:替换模式,替换多个字符
r#:将当前光标的字符替换为#,这里的#可以是任何字符
命令模式下撤销编辑:u
u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
#u:直接撤销此前的#次编辑操作
ctrl+r:还原最近一次的撤销操作
.(点):重复前一次编辑操作
可视化模式:
可视化模式下可以对选取的内容进行前面讲的所有编辑操作
v:按字符选取内容
V:按矩形块(行)选取内容
末行模式下文本查找:
/pattern:从上往下查找匹配的内容
?pattern:从下往上查找匹配的内容
n:从上往下查找匹配到的内容的下一条
N:从下往上查找匹配到的内容的下一条
末行模式下查找并替换:s
s命令只能在末行模式下使用
语法:ADDR1,ADDR2 s/pattern/string/gi
1,5 s/user/name/g //表示把第一行到第五行的所有user替换为name
末行模式下显示或取消显示行号:
set nu:显示行号
set nonu:取消显示行号
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格: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
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
我正在为个人笔记创建一个日志应用程序,并且在我的Rakefile中包含以下内容:task:newdoentry_name="Entries/#{Time.now.to_s.gsub(/[-\:]+/,'.').gsub(/.0500+/,'')}.md"`touch#{entry_name}``echo"#$(date)">>#{entry_name}`end我想包括的最后一部分是Vim文本编辑器的打开,但我不知道如何打开它,就像我直接从bash终端调用它一样。我试过:vim#{entry_name}但不幸的是,我认为它们都将其作为后台进程打开。我一直在引用“6WaystoRunShe
我使用“newapp_name”创建了一个新的Rails应用程序,我正在尝试编辑.gitignore文件,但在我的应用程序文件夹中找不到它。我在哪里可以找到它?我安装了Git。 最佳答案 .gitignore位于项目的root中,而不是app子目录中。首先打开终端并进入您的目录。您需要使用ls-a来显示stash文件。然后使用打开.gitignore 关于ruby-on-rails-尝试打开.gitignore以在文本编辑器中对其进行编辑,但在OSXMountainLion上找不到文件位
在Railcasts上,我注意到一个非常有趣的功能“转到符号”窗口。它像Command-T一样工作,但显示当前文件中可用的类和方法。如何在vim中获取它? 最佳答案 尝试:helptags有各种程序和脚本可以生成标记文件。此外,标记文件格式非常简单,因此很容易将sed(1)或类似的脚本组合在一起,无论您使用何种语言,它们都可以生成标记文件。轻松获取标记文件(除了下载生成器之外)的关键在于格式化样式而不是实际解析语法。 关于ruby-on-rails-Textmate'Gotosymbol
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。但是,