我可以使用哪种编辑器作为简单的vi / vim替代品?


17

我是Windows用户,感谢WSL来使用Ubuntu的Bash 。现在,我需要编辑一些文件,我真的很讨厌Vi。我只需要处理它,还是有一个更简单的选择?

我要寻找的功能是:

  • 基于CLI
  • 易于使用(键入和编辑应类似于记事本)
  • 简单的编辑功能就足够了

我将尝试掌握Vim,但现在需要快速进行编辑!


这是见仁见智。初学者使用nanohowtogeek.com/howto/42980/…。vim(经过改进的vi)具有一定的学习曲线,但功能非常强大-请参见linux.com/learn/vim-101-beginners-guide-vim或任何vim指南或vim教程,vimtutor(包含在vim中)
Panther's

请注意,这个问题可能基于观点而被关闭。您可能需要重新命名以符合站点规则(例如,我可以用什么代替vim?)
Andrea Lazzarotto

3
投票结束基于意见的问题。忠告:从纳米开始,后来逐步发展为vim。从长远来看,它将获得回报,因为vim基本上在任何Linux系统上
Sergiy Kolodyazhnyy

1
作为我的评论的后续,当前的标题仍值得商and,并可能导致结案。人们可能会认为vim本身是“好”的,这是主观的。我可以建议改用“更简易”一词吗?另外,指定一些所需的功能可能有助于缩小问题范围。
安德里亚·拉扎罗托

2
@Jos我们谈论的是WSL,可以完成运行GUI程序的过程,但并不简单。同样,GUI编辑器也不存在这个问题,因为它们都比vim容易。
Andrea Lazzarotto

Answers:


24

如果您正在寻找替代编辑器,您并不孤单。基本上,生命太短而无法学习vi,我说这是一个以软件开发为生的生活。但是,您应该学习如何退出它,因为这对于每2万名程序员来说是一个问题。另外,执行一些基本的追加/插入操作可能值得学习,因为在某些顽固的服务器上您找不到其他任何编辑器。

现在,您问题的答案可能是nano

如果您正在运行某些自动生成脚本,使用git或运行其他命令,它们可能会vim在您不希望打开的情况下打开。您可以通过在继续之前运行以下命令来防止这种情况:

export EDITOR=nano

1
谢谢!EDITOR小费的额外点
sebagomez

3
“基本生活太短,无法学习vi”。无需花一辈子的时间,尽管如果他们热爱vim也可以。我花了2个小时在YouTube上观看了一个不错的教程,并且一直在练习从视频中学到的基础知识。现在,我在Ask Ask Ubuntu上所有答案的70%是用vim编写的。
谢尔盖·科洛迪亚兹尼

7
关于“生命太短了”,我认为这篇文章很有道理。学习Vim的最大(人为)障碍之一是错误的前提,即您需要立即投入成为“硬核”用户。你不知道 使用箭头键。使用GUI快捷方式进行复制/粘贴。在插入模式下进行视频群聊。忽略制表符和注册器以及铃声和口哨声(目前)。在Vim中进入纳米级功能相对较快,以后可以根据需要缓慢添加高级功能。
RM

@RM GUI快捷方式?
安德里亚·拉扎罗托

1
如果您想使用高级功能,@Sergiy vim很有意义。如果我像使用nano一样使用vim,我将继续使用nano(事实上,我确实...我在无法添加软件的服务器上使用vim,例如客户端的机器)。
安德里亚·拉扎罗托

11

这是见仁见智。

初学者使用nano

vim(“ vi改进的”)具有一些学习曲线,但功能非常强大。有关vim或其他任何vim指南,请参见本入门指南,也可以参见vim教程vimtutor(包含在vim中)。

现在我强烈建议纳米

nano -B /path/to/file/to/edit

-B进行备份

命令带有控制键,并在编辑器窗口的底部列出。

有关语法高亮的指南,请参见:如何在nano中启用语法高亮?

纳米

emacs是两者的替代品vimnano也有很多好处。emacs比纳米更复杂。您可以看到emac的导览

仅出于完整性考虑,Vim +主题(例如Zenburn)可能会很有帮助

曾本


2
不仅是初学者,而且基本上所有不想参加vim与emacs战争的人。:P
安德里亚(Andrea Lazzarotto)

1
+1我也将继续使用nano,即使是长期使用的用户,vi也会看起来有些陈旧
-xavier_fakerat

好吧,公平地说,您可以将vim作为主题,.vimrc可以走很长一段路。vim和emacs具有无法在nano中使用的高级功能,但是如果不使用高级功能,这将是一种浪费。对于快速的基本编辑,我使用nano,尽管总的来说,我是vim fanboi。kippura.org/zenburnpage
Panther

1
学习vi/vim。:)它在每个nix设备上。:)基础并不难。
逃犯

3
“ emacs比nano更复杂。” :p这可能是低估了这一年。
丹尼尔·乔尔

3

作为Windows超级用户,在尝试之后vimnano我发现我需要介于两者之间的复杂性。所以我尝试了巴掌,这就是我想要的东西

耳光

slap是Sublime式的基于终端的文本编辑器,致力于简化从终端的编辑。


安装:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh

1
您忘了提到主要卖点,一流的鼠标支持(即使通过SSH连接)
蓝光

2

您是否曾经因为您的文本编辑器没有执行您想要的操作而感到沮丧?激怒了你不记得了...

  • ...如何寻求帮助?
  • ...什么是什么意思?
  • ...您读过本科的小利珀?

一个小小的勇敢世界正在等待!

当我们提倡最喜欢的轻量级文本编辑器时,让我推荐eXcellent,微小和快速的xo(exofrills)

这是一个单独的Python 3文件,并且对通过Pygments突出显示语法有很好的支持(尽管与非Python并不完美):

在此处输入图片说明

它还具有极其简单和有用的按键组合,可以轻松,轻松地更改您的内心内容:

在此处输入图片说明

其它功能:

  • 单个文件中少于850行代码!
  • 语法高亮!
  • 正则表达式匹配和替换!
  • 搜索历史记录缓存!
  • WTFPL许可!
  • 完全可定制!
  • 从非原产地开始!
  • 在单词之间跳动!
  • 跳到文件中的任何位置!
  • 整个文件插入!
  • 初学者友好-也许您是新手!
  • 复制并粘贴文字!
  • 行和列状态!
  • 只有一行非文本编辑空间!
  • 既保存又加载!

Python3源位于github上,您可以使用以下命令更轻松地安装它:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills:您的文字已被编辑...但是您仍然很饿。

免责声明:我绝不隶属于exofrills项目。


1
看起来很整洁,我+1。尽管该数量的惊叹号令人不安。:P
Andrea Lazzarotto

0

虽然我不能否认我一开始就太在为vi苦苦挣扎,但我认为可以提出一个论点,即vi实际上非常简单易学。(当我开始使用Unix时,选择的是vi还是emacs,所以当我选择ed时,ed是一个非常简单的行编辑器,我从阅读早期的Unix教科书中学到了这一知识。)我每天都使用vi,但我可能仅使用其功能的很小一部分。

这是使用vi的第一个论点:vi在所有系统上都存在,仅使用很少的资源,并且可能在不稳定和缓慢的连接上可用,在这种情况下其他编辑器可能会失败或变得缓慢且无法使用。或者在系统损坏的情况下,箭头键无法正确解释(例如,错误的terminfo设置。)因此,vi可以用于修复导致问题的配置文件,而不受问题的影响。

以下是学习vi的有用子集的方法:首先:停止将vi视为交互式的终端GUI“编辑器”,并将其视为用于操纵文本文件的编程语言。最初,“ vi”代表可视模式,而vi具有非可视对应项ex,这是一个很好的起点。在shell提示符下键入ex(我将使用¬表示return):

$ ex¬
Entering Ex mode.  Type "visual" to go to Normal mode.
:

现在按回车。

:¬
E749: empty buffer
:

因此,让我们放入一些东西。键入“a¬”,然后键入一行文本,然后键入一行上的句点:

:a¬
Hello World¬
.¬
:

那是附加命令。简单,简短和助记符。但是很高兴看到缓冲区中有什么:

:%p¬
Hello World
:

显然,这是打印命令p。%是行范围的简写。每个命令之前都可以加上该命令应适用的行号或范围。%表示“所有行”。$表示最后一行,句点表示当前行。数字表示该行。范围被写为n,m,并且可以加上或减去一个数字,因此。+ 1,$-1表示从下一行到倒数第二行。仅由行号组成的命令将转到该行。这是我使用的其余命令小子集:

:1i¬
this text is inserted before line 1.¬
.¬
:

:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:

w将所有(或选定范围的)行写入文件。

:1d¬

删除第1行。

:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!

s替换正则表达式。知道正则表达式真是太好了!

:q¬
E37: No write since last change (add ! to override)

q退出。wq写入并退出。q!不写就退出,以类似的方式,w!如果可能,强制写入文件。

现在很酷:

:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!

!作为命令将行过滤为shell命令。

最后:

:vi¬

进入VISUAL模式。不要上当。它看起来像一个编辑器,但仍然只是一个交互式编程外壳。您只需要一直查看缓冲区,以及其他一些命令。在可视模式下,a:显示ex模式下的:提示。箭头键(如果它们起作用)移动,如果不起作用,则hjkl起作用!h左,j向下,k上,l右。0移至该行的第一个字符,而^(请在此处考虑正则表达式!)移至该行的第一个非空格字符。$(再次是正则表达式!)移动到行尾。就像在ex模式下一样,键入:999¬转到第999行。

“ i”进入插入模式,该模式现在插入字符而不是行,并以转义而不是“.¬”结束。“ I”插入到开头,在光标下方的字符之后插入“ a”,并在当前行的末尾插入“ A”。输入文本后,请始终按Escape键。“ x”删除光标下的字符,“ D”从光标删除到行尾。“ Y”取消(复制)当前行,“ P”将其粘贴回去。“:pu”的作用相同,但是可以在行号之后加上。“:ya”是“ Y”的前等价物,同样适用于行范围。我认为也有一个mark命令,但我承认我不记得它了。我不会错过

以上是我使用的方式,我知道我可能不是一个非常“高效”的vi用户。另一方面,我确实使用ex的多功能性,例如对配置文件进行脚本编写。是否需要在许多conf文件中将您的主机名foo.bar.com更改为www.foobar.com?

for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done

我想说的是,我认为vi的问题在于人们认为它是一个困难的编辑器。它所要做的只是稍微改变您的思维方式,并将其视为一种非常简单但功能也非常强大的交互式编程语言。如此强大,以至于即使有一部分可用命令,您也可以使用它-不仅可以作为编辑器,而且可以作为与Unix其余部分很好地集成的通用,可编写脚本的工具来发挥巨大作用。我怀疑纳诺会做所有这一切-emacs ...也许。


3
对不起,但是...这不能回答问题。OP要求使用vim的替代方法,并应提供答案。
Andrea Lazzarotto

1
我赞扬您在此答案中所做的工作,但它并没有真正回答问题-vim的插件教程和vim完全不属于这里,但确实属于您的博客。

正是这个答案,就是为什么这么多人要求替代viemacs的原因-我们说他们不喜欢使用的越多,转换的人坚持认为我们会更努力地使用它们。
Shukri Adams

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.