{"id":13819876,"url":"https://github.com/manveru/ver","last_synced_at":"2025-04-06T00:30:57.222Z","repository":{"id":441253,"uuid":"63331","full_name":"manveru/ver","owner":"manveru","description":"Vi \u0026 Emacs in Ruby","archived":false,"fork":false,"pushed_at":"2019-10-21T20:52:17.000Z","size":4226,"stargazers_count":65,"open_issues_count":14,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-21T13:52:37.981Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://manveru.rubyists.com:8080/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manveru.png","metadata":{"files":{"readme":"README.textile","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2008-10-15T15:24:15.000Z","updated_at":"2021-10-31T10:16:58.000Z","dependencies_parsed_at":"2022-07-04T16:30:47.207Z","dependency_job_id":null,"html_url":"https://github.com/manveru/ver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manveru%2Fver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manveru%2Fver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manveru%2Fver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manveru%2Fver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manveru","download_url":"https://codeload.github.com/manveru/ver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419597,"owners_count":20936009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T08:00:54.332Z","updated_at":"2025-04-06T00:30:53.654Z","avatar_url":"https://github.com/manveru.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"h1. VER - Vim \u0026 Emacs in Ruby\n\nh2. Description\n\nVER is a \"text editor\" in the tradition of Emacs, providing a whole environment\naround your editing experience.\nIt also borrows heavily from Vim, most prominently modal editing and the\ndefault keyboard map.\nFinally, I also have to thank the TextMate developers and community, because we\nare standing on their shoulders by reusing the syntax definitions and completion\nroutines as long as they are under an acceptable license (no code of TM is\nused).\n\nAt the time of writing, around 140 different languages have syntax highlighting\nand around 130 languages have extended capabilities like completion or automatic\nindentation.\n\nh2. Dependencies\n\n* You will need to install tk if it isn't on your system already.\n  Detailed installation instructions for all major platforms and more\n  information about Tcl/Tk are available at: \"Tcl/Tk Project\":http://tcl.tk\n\n* In an attempt to make VER available for all Ruby implementations, I wrote an\n  alternative for ruby-tk, called ffi-tk.\n  Eventually it should be available as a gem, but for now you can get the source\n  from \"manveru/ffi-tk on github\":http://github.com/manveru/ffi-tk\n  No compilation required.\n\n* Only a `gem install eventmachine` away:\n  \"Ruby/EventMachine library\":http://rubyeventmachine.com\n\nh2. Features\n\n* VER and ffi-tk are 100% (hopefully straightforward) Ruby.\n* Syntax highlighting for around 140 file types.\n* Keymaps for Vim, Emacs, Nano, and Diakonos behaviour.\n* Intelligent indentation based on file type.\n* Automatic completion for words, lines, aspell, and more.\n* Support for TextMate bundles and snippets.\n* Recursive fuzzy file finding\n* Recusive pattern grepping\n* Find and replace using oniguruma\n* Unlimited undo\n* In-buffer ruby evaluation, can also be used for text manipulation\n* CTags support\n* much more...\n\nh2. Installation\n\nFor Tcl/Tk there are various instructions available from\n\"Tk Docs\":http://www.tkdocs.org/tutorial/install.html\n\nVER only runs on Ruby 1.9.1+, but should run on any implementation conforming to\nthe corresponding specification because no C extensions are involved.\nAt the time of writing, VER should run on MRI and JRuby (with --1.9 switch).\nThis means that there is no need to follow all the complicated instructions to\nget Ruby and Tk to work together, you do need to install both however.\n\nh3. General Information\n\nA couple of hints that should help you get started on any platform.\nSee further below for detailed instructions for specific platforms, feel free to\ncontribute additional information as you encounter issues.\n\n\"Installing RVM\":http://rvm.beginrescueend.com/rvm/install will show you how to\ninstall rvm, which is the best way to get Ruby 1.9.1 on platforms that have no\npackage available.\nOnce rvm installed, a simple @rvm install 1.9.1@ and @rvm use 1.9.1@ should get\nyou going.\nTk is easy to install in most cases, for Windows there is ActiveTcl, and there\nare packages for every linux distribution i know.\n\nOSX poses a unique challenge, it does ship with Tk 8.4there on one hand TkAqua,\nwhich uses the old Carbon UI, and on the other hand X11/Tk, which requires X11\nto be installed (I hear it's part of XCode).\nUsers have reported best functionality under X11.\nSince VER doesn't use any buttons, sliders, or entry widgets, the difference\nshould be very hard to notice.\nAdditionally, there is a developer working on a Tk-Cocoa port, which should be\nready in the near future.\n\nh3. Archlinux\n\nInstallation on Archlinux is simple, as Ruby 1.9.1 and Tk 8.5.8 are the default\npackages (in the extra repository).\n\n[@\n  pacman -S tk ruby\n  gem install ver\n@]\n\nI plan to make a tarball release of VER sometime in the future to allow easy\ninstallation from AUR.\n\nh2. Configuration\n\nAt the time of writing, there are only a few options exposed.\nOptions can be changed in your ~/.config/ver/rc.rb where you can find a few\ndefault settings already.\nIn earlier revisions of VER, options are often to subject change, so be aware\nthat at some point they might not work as expected anymore.\nIf options are deprecated or replaced, I will try to keep the configuration\nworking, but in early stages this is no priority.\n\nh3. Plugins\n\nThere is a handful of plugins available right now, which you can use by adding\n@VER.plugin :name@ statements in your ~/.config/ver/rc.rb file.\nThe most stable ones are probably the git and autosave plugins.\nSo, to use the git plugin, put @VER.plugin :git@ in your rc.rb.\nPlease note that all plugins have only bindings in the vim keymap right now,\nautosave doesn't require any keybinds, so it works with all keymaps.\n\nh3. Keymaps\n\nVER features 3 keymaps out of the box, Vim, Nano, and Diakonos, which are\nconstantly tested and improved.\nAs might be expected, the Vim keymap is not 100% complete, and I'm adding new\nmappings as I become aware of them.\nVim is a fairly complex piece of software developed over the past 20 years, so\ndon't expect full compatibility or behaviour in all cases.\n\nAn Emacs keymap is currently under development, but not ready for daily use.\n\nWe are searching for contributors that can provide keymaps for other editors.\nTo add a new keymap, put it under config/keymap/$name.rb and start VER with\n\n\u003cshell\u003e\nver -k $name\n\u003c/shell\u003e\n\nWhere @$name@ is a placeholder for the filename of the keymap you created.\nSo to try out nano, use @ver -k nano@.\n\nh2. Yet another editor?\n\nh3. A little bit of philosophy\n\nAfter many years of being a code ninja, it became apparent to me that there\ncould be as many editors as there are developers.\n\nIt feels to me, like there are many useless religious wars going on around this\nseemingly simple topic, there is the church of emacs, the cult of vi, and many\nother groups that don't have chosen how to call themselves yet.\n\nI'm guilty myself of telling people what to use, without really considering what\nthe consequences of my actions are.\n\nA text editor should not be treated like a religion.\n\nFor one, everybody should be given an objective overview over the choices out\nthere. Recently, Wikipedia seems to have taken over this role, so I won't invest\nmuch energy into this topic.\n\nWhat I find really interesting, is that only very few people even think of\nattempting to write their own editor.\n\nMaybe I'm suffering from a severe case of NIH, but i want to give everybody a\nchance to see what's involved. You can write an equivalent of nano in a couple\nof days, but how much does it take to improve on the concepts of the great\neditors?\n\nI won't say it's an easy task, it's more in the spirit of a Jedis building their\nown laser-sword, once you reach a good enough proficiency in programming it\nshould be good practice to build your own tools, and what tool is more to\nwriting programs than an editor?\n\nIt also has other benefits, teaching you new things about yourself and the way\nyou work.\nYou will learn more about the strengths and weaknesses your language.\nThe next time you curse your editor, you can make it better.\n\nh3. Background\n\nI've used many editors over the years, and a lot of them have inspired me,\namongst them are Proton, JEdit, SciTE, Vim, Emacs, Nano, Gobby, GEdit, Kate...\nHowever, Vim and Emacs can be considered the most prominent of the editors that\ntry to do much more than just editing text.\n\nI've never had a big interest in IDEs, maybe because Ruby saves you from most of\nthe boilerplate that is usually associated with programming, and for most\ndynamic languages they just don't provide you that much.\n\nMaybe, someday, VER will become for Ruby what Emacs is for Lisp.\nI have very mixed feelings about that.\n\nh3. The name\n\nI tried to come up with a short name, that would give credit to my biggest\ninspirations.\nThere is not much more to it.\n\nh2. Development\n\nVER is free and open software, we welcome anyone to use it and contribute.\nThe source is at \"Github\":\"http://github.com/manveru/ver\"\n\nFor bug tracking, release-, and feature-planning, we use\n\"Pivotal Tracker\":\"http://www.pivotaltracker.com/projects/61971/overview\".\nYou can join the tracker and help out with creating stories.\n\nh2. Thanks\n\nI'd like to thank following people:\n\n* Aman Gupta and the folks in #eventmachine\n  Helping me and keeping me going crazy when I hit some weird C syntax.\n* Francis Cianfrocca\n  EventMachine, making evented programming fun and even profitable.\n* Julian Langschaedel\n  First user and contributor.\n* Pistos\n  Inspiration through Diakonos and patience testing just about anything I throw\n  at him.\n* Richard M. Stallman\n  Emacs\n* Yukihiro Matsumoto\n  Ruby, ruby-tk, and the knowledge that programmers can make a deep impact if\n  they are just persistent enough.\n\nh2. License\n\n(The MIT License)\n\nCopyright (c) 2009 Michael Fellinger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the 'Software'), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\nDAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanveru%2Fver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanveru%2Fver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanveru%2Fver/lists"}