我怎样才能真正在Vim中玩得开心?[关闭]


25

我爱Vim。我一生都在用它:在工作中,我用Vim开发代码,用它编辑配置文件,用它写电子邮件。在家里,我用它写了我的待办事项清单和我的遗愿清单。有空的时候我会写一本书。我参加了有关Vim的聚会,并试图说服我认识的每个人使用它(不幸的是,我的祖母不同意她应该使用它来写信给她的朋友)

带着对我们心爱的编辑的种种热爱,我面临着一个巨大的问题:作为一个正常构成的人,我有时想放松身心并享受乐趣。自然,我想在我们敬虔的编辑器中这样做,但我不知道该怎么做。当然,我花了几个小时自定义我的配色方案并编写了我长时间观看的递归宏,但是连续六,七个小时后,它就不再那么有趣了。

因此,我打电话给您,Vimmers同学:我如何在Vim中玩乐?

编辑这篇文章显然是4月的傻瓜(当然,我的祖母喜欢使用Vim)。谢谢大家的回答和评论,提出了一些非常酷的想法!


4
用vim写一本笑话!
loutre '16

7
@loutre:关于Vim的笑话吗?就像“ Vi有两种模式:一种是在您按下任何键时发出蜂鸣声,而另一种则是删除您已完成的所有工作。” :-)
statox

3
仅通过有效地使用它,我就对Vim充满了乐趣。
romainl

2
由于愚人节已经结束,因此我将这个问题作为离题话题来结束。现在没有更多的乐趣了!:p
Martin Tournoij '16

2
@Carpetsmoker但是...但是...但是...不再有趣了吗?:-(
wizzwizz4 2016年

Answers:


21

在Vim中有很多乐趣的方法:例如,可以安装vim-script nibble插件(该插件具有依赖性,还必须安装)。

安装插件后,该命令:Nibble将在新缓冲区中启动蛇游戏。可以使用控制蛇,用hjkl可以暂停游戏space。这样,就可以在我们心爱的编辑器中度过数小时的乐趣。

蚕食vim


现在,如果您对蛇感到厌倦,仍然可以使用TeTrIs.vim玩一个很好的俄罗斯方块游戏。

这个没有依赖性,游戏开始于 Leaderte

请欣赏它的美丽:

Vim中的俄罗斯方块


最后,如果您确实是一个顽固的游戏玩家,但仍然想要一些新的体验,则可以尝试sokoban。这个游戏对我来说要求太多的脑力,但是我敢肯定有些天才仍然会喜欢它。


编辑由于问题现已关闭,我将添加@sp asic建议的flappyvirb插件,它实际上比智能手机版本容易得多:

Vim上的蓬松鸟

@mMontu建议的Matrix插件,它将在惊人的矩阵屏幕保护程序前面为您提供数小时的娱乐:

在此处输入图片说明


编辑2因为乐趣永无止境,所以这里是怀旧游戏玩家的另一个插件:rogue.vim顾名思义,它是vim中的流氓端口:

在此处输入图片说明

探索地牢,与怪物战斗,赢钱:成为一名真正的Vim冒险家!游戏似乎真的很完整,文档又大又清晰,并且有很多命令可用。就像在每个优秀的流氓中一样,地牢是在每个新游戏中随机生成的。



@spasic:我不知道,但是完全符合列表!
statox

1
您还可以通过矩阵插件
mMontu '16

@mMontu:不幸的是,该插件在我的系统上似乎无法正常工作,我没有时间对其进行调试,但这似乎很酷!:-)
statox

蛇蛇将是吸引新用户开发hjkl按键肌肉记忆的绝佳选择!
dbmrq

12

没注意到VimGolf这里列出的,所以以为我会把它扔在那里:

VimGolf

这是一种挑战自我的有趣方式,您可以通过越来越少的击键来完成Vim任务。抱歉,如果您已经知道的话。


3
不要忘记Code Golf

@猫我第二个。Vim并非完全是一种“编程语言”,但我已将其用于代码高尔夫,并且效果很好!
DJMcMayhem


@cat我知道vim很有竞争力!codegolf.stackexchange.com/a/74717/31716
DJMcMayhem

1
@DJMcMayhem Oooh,我无法识别字谜用户名:P

7

想象一下您拥有的另一个爱好的文件格式,并为您编写一个Vim插件。

例如,假设您喜欢撰写填字游戏/拼图。在这种情况下,您可以使用/创建一种特殊的文件格式,并通过一个插件来补充或补充该插件,该插件可以帮助或自动执行某些操作,例如,轻松切换黑色正方形,轻松从拼图中的定义定位到单词位置或在其中自动搜索基于当前行/列光标位置的不完整单词的指定字典。像这样的东西 :)

(这个想法来自一本Emacs的书:“编写GNU Emacs扩展”)


6
您的回答使我认为,可以开发一个插件来帮助创建和播放此网站上的正则表达式填字游戏。插件可以读取填字游戏并突出显示错误放置的字符:-)
statox

是的-足够有趣的事情都值得付出:)
VanLaser

1
@statox,这是一个很棒的网站,谢谢您链接到它!:D
通配符

1
@Wildcard很好,欢迎您!我的一个朋友几天前向我展示了这个想法,我发现这个想法很酷!
statox

7

您认为您已经掌握了Vim吗?您知道所有命令吗?使用Vim变得无聊和平庸吗?您是否渴望寻找如何退出Vim的激动人心的新日子?

然后升级您的Vim,以达到更高的Vim掌握水平!就像使用:VimLevelUp!一样简单!

fun! s:level_up()
    let l:all_mappings = []
    for k in range(33, 123) + [125, 126, 127]
        let l:all_mappings += [nr2char(l:k), '<C-' . nr2char(l:k) . '>']
    endfor
    let l:all_mappings += ['<Bar>', '<Left>', '<Right>', '<Up>', '<Down>']
    let l:all_mappings += ['<C-Bar>', '<C-Left>', '<C-Right>', '<C-Up>', '<C-Down>']
    let l:all_mappings += ['<S-Bar>', '<S-Left>', '<S-Right>', '<S-Up>', '<S-Down>']
    for i in range(1, 12)
        let l:all_mappings += ['<F' . l:i . '>', '<C-F' . l:i . '>', '<S-F' . l:i . '>']
    endfor

    let l:random = map(systemlist('seq 0 ' . (len(l:all_mappings)-1) . ' | shuf'), 'str2nr(v:val)')
    for i in range(0, len(l:all_mappings)-1)
        execute 'nnoremap ' . l:all_mappings[i] . ' ' . l:all_mappings[l:random[i]]
    endfor

    echo "Welcome to level 2"
endfun

command! VimLevelUp :call s:level_up()

这样可以保证为您提供一种新的方式来体验Vim和无尽的乐趣!

(注意:使用seqshuf-可以使用将其移植到BSD和OSX jot)。


4
那么...它做什么呢?
通配符

2
没有经过测试,但我想说它会随机地打乱vim键。谈论陡峭的学习曲线...
mdup '16

2
@Wildcard尝试一下。好有趣!;-)
马丁·图尔诺伊

@Carpetsmoker现在这是一个全新的邪恶水平……我喜欢它!:-)
statox

5
  • 安装一堆colorschemes。

  • 安装ScrollColors.vim插件

  • 用几个文件将窗口分割几次。

  • 确保set mousefocusset mouse=a (在GUI中效果更好)。

  • au WinEnter * silent CN –切换缓冲区时更改颜色方案

  • 关闭灯,打开荧光棒,然后向周围挥动鼠标。确保警告患有癫痫病的人。

http://webmshare.com/vAbwz


1
这个想法实际上很有趣:-)
statox

1
:-D哈哈,这是生活中最简单的事情
尘土飞扬

4

玩代码高尔夫!

是的,Vim 成为了互联网上最好的[ 需要引用 ]竞技运动。您可以尝试仅vim的挑战,也可以证明Vim在标准代码高尔夫挑战中的优越性。玩代码高尔夫是为狂热的Vim粉丝打发时间的一种有趣方式。
免责声明:我是Programming Puzzles和Code Golf的活跃用户,因此与它具有隶属关系。

值得一提的是,我们确实需要使用/关于Vim的问题和解决方案更多:目前,关于Vim的问题只有6个使用该语言的问题有72个(不包括那些问题)。因此,如果您喜欢Vim,则可能喜欢编程难题和Code Golf。


加入娱乐有点晚了
wizzwizz4'4

加入乐趣永远不会太迟:-)
statox
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.