{"@attributes":{"version":"2.0"},"channel":{"title":"2018 on Vimways","link":"https:\/\/vimways.org\/2018\/","description":"Recent content in 2018 on Vimways","generator":"Hugo -- gohugo.io","language":"en-us","lastBuildDate":"Sun, 23 Dec 2018 00:00:00 +0000","item":[{"title":"Vim and Mercurial","link":"https:\/\/vimways.org\/2018\/vim-and-mercurial\/","pubDate":"Sun, 23 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/vim-and-mercurial\/","description":"In a previous entry in this year&rsquo;s Vimways advent blogging, Samuel Walladge detailed how to make Vim and Git work together&hellip; since it was quite good, I figured I would write a similar entry about making Vim and Mercurial work together! And to do so, I&rsquo;m totally going to plagiarize Samuel&rsquo;s article structure! Let&rsquo;s dive in.\nThe Mercurial perspective Just like Git, Mercurial needs to open a text editor for some operations:"},{"title":"Search for us, newbies","link":"https:\/\/vimways.org\/2018\/searches-for-us-newbies\/","pubDate":"Tue, 18 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/searches-for-us-newbies\/","description":"Search in Vim for newbies Now that we&rsquo;ve seen moving across files I think it is time to get back to the current buffer and see what is possible here as well.\nOne thing that seems to happen consistently on the way from beginning newbie to not-so-much newbie is that moment when you realize that mashing hjkl or holding w\/b is not the most efficient way to move around. Personally, I don&rsquo;t think counting words is any efficient either."},{"title":"if_pyth (= the python interface) cookbook","link":"https:\/\/vimways.org\/2018\/a-python-interface-cookbook\/","pubDate":"Mon, 17 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/a-python-interface-cookbook\/","description":"Why if_pyth We might as well admit that Vimscript has its share of limitations and quirky behaviours. Luckily, Vim (and NeoVim) provides binding to Python, Perl, Ruby, and other programming languages. Using them also allows you to use packages from these languages&rsquo; package repositories such as PyPI and to write or use extensions in C, C++ or similar.\nThis article aims to be a cookbook for using if_pyth which is Vim&rsquo;s Python interface."},{"title":"Transactions Pending","link":"https:\/\/vimways.org\/2018\/transactions-pending\/","pubDate":"Sun, 16 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/transactions-pending\/","description":"Literature adds to reality, it does not simply describe it. It enriches the necessary competencies that daily life requires and provides; and in this respect, it irrigates the deserts that our lives have already become.\n\u2013 C. S. Lewis\n What are Text Objects? Even if you are a newcomer to vim, you&rsquo;re likely familiar with the concept of a text object. In vimtutor, this concept is introduced pretty early on."},{"title":"Vim's social life","link":"https:\/\/vimways.org\/2018\/vims-social-life\/","pubDate":"Sat, 15 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/vims-social-life\/","description":"Vim is a shell command, and its fast startup supports that use-case: shell tasks, whether ad-hoc (interactive) or orchestrated (pipeline, script), are cheap and thus frequent.\nYet Vim&rsquo;s startup story is relatively unpolished. Shell tools are expected to consume standard input (&ldquo;stdin&rdquo;) and emit to standard output (&ldquo;stdout&rdquo;)\u2014but Vim supports this awkwardly, at best. The endeavor is never mentioned in Vim tutorials, including the &ldquo;Unix as IDE&rdquo; hymnals. And it is puzzled out of Vim&rsquo;s documentation only by careful inspection."},{"title":"Opening Non-Vim File Formats","link":"https:\/\/vimways.org\/2018\/opening-non-vim-file-formats\/","pubDate":"Fri, 14 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/opening-non-vim-file-formats\/","description":"The mechanic that would perfect his work must first sharpen his tools.\n&ndash; Confucius\n Once your Vim gills grow in, trying to operate outside of your new command line haven can feel akin to being a fish out of water. Two excellent posts regarding using Vim with splits and ditching excess file explorers have already demonstrated how easy it is to navigate Vim without using external programs or plugins."},{"title":"Death by a thousand files","link":"https:\/\/vimways.org\/2018\/death-by-a-thousand-files\/","pubDate":"Thu, 13 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/death-by-a-thousand-files\/","description":"A guy told me one time, &ldquo;Don&rsquo;t let yourself get attached to anything you are not willing to walk out on in 30 seconds flat if you feel the heat around the corner.&rdquo;\n\u2013 Neil McCauley (1995)\n Moving around a buffer or project without aim, mainly in search of something &ldquo;interesting&rdquo;, is not something easy to optimize as &ldquo;interesting&rdquo; is pretty much undefined until you find it. On the other hand, jumping to a specific point of interest is something Vim is very good at and that talent is an important part of its appeal."},{"title":"Debugging your Vim Config","link":"https:\/\/vimways.org\/2018\/debugging-your-vim-config\/","pubDate":"Wed, 12 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/debugging-your-vim-config\/","description":"Vim configuration is powerful and complex. I mean, this isn&rsquo;t setting a few options in an INI file; we&rsquo;re talking about a Turing complete programming language tailor made for scripting an editor. Thus, your config is a computer program in itself, and of course this means that there will be bugs&hellip;\nThere can be many plugins and script files sourced, each one can run code at basically any time, and each can set global variables and change global or buffer options."},{"title":"Colder quickfix lists","link":"https:\/\/vimways.org\/2018\/colder-quickfix-lists\/","pubDate":"Tue, 11 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/colder-quickfix-lists\/","description":"I may be an oldie, but I&rsquo;m a goodie too\n\u2013 &ldquo;Eighteen with a Bullet&rdquo;, Pete Wingfield\n This article is going to walk through a process of finding an interesting feature of Vim, and incorporating it into a workflow. This is a strong Vim tradition, and part of how we each make our Vim our own - whether it means a couple of mappings, or an over-engineered pile of vimscript as will be presented here."},{"title":"Runtime hackery","link":"https:\/\/vimways.org\/2018\/runtime-hackery\/","pubDate":"Mon, 10 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/runtime-hackery\/","description":"You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.\n\u2014 Friedrich Nietzsche\n Enhanced runtime powers In an earlier article on beginning the process of breaking up a long vimrc into a ~\/.vim runtime directory, we hinted at a few more possibilities for leveraging the runtime directory structure:\n Disabling specific parts of the stock runtime directory"},{"title":"The Mapping Business","link":"https:\/\/vimways.org\/2018\/the-mapping-business\/","pubDate":"Sun, 09 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/the-mapping-business\/","description":"Time For More Cookin&rsquo; In first part, we went through the basics of mappings, and how they fit into the big picture of Vim design and use.\nWe are now going to see a few common recipes to write slightly more advanced mappings.\nFollow The Yellow Power Cord In a nutshell, &lt;Plug&gt; is a Vim notation for some special key sequence that the user cannot type. What use is it?"},{"title":"For Mappings And A Tutorial","link":"https:\/\/vimways.org\/2018\/for-mappings-and-a-tutorial\/","pubDate":"Sat, 08 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/for-mappings-and-a-tutorial\/","description":"On The Genealogy of Modality What makes Vim so different from other editors is, arguably, its rich set of motion commands. Once you can move around with precision, you not only gain time, as you do not need to reach for the mouse, but you can also turn pretty much every modification into tiny &ldquo;programs&rdquo;, either to accomplish ad hoc tasks via recorded macros, or to address more general cases, thanks to commands, functions&ndash;and mappings."},{"title":"Make your setup truly cross-platform","link":"https:\/\/vimways.org\/2018\/make-your-setup-truly-cross-platform\/","pubDate":"Fri, 07 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/make-your-setup-truly-cross-platform\/","description":"Make your setup truly cross-platform Once you have taken the time to setup Vim exactly the way you want, you might still encounter configuration issues. My whole ~\/.vim\/ directory is under version control so I can just clone it on any computer I want my familiar Vim experience.\nBut I use Windows computers and Linux computers. Even within the same environment, I might have different dependencies installed for the plugins I try to import."},{"title":"Formatting lists with Vim","link":"https:\/\/vimways.org\/2018\/formatting-lists-with-vim\/","pubDate":"Thu, 06 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/formatting-lists-with-vim\/","description":"Use of formatoptions and the fo-table We tell Vim how formatting should be carried out by setting 'formatoptions'. This is set to a string of characters whose meaning is described in :help fo-table. Rather than repeating what&rsquo;s in the help it&rsquo;s sufficient to say the default is formatoptions=tcq, which may lead users to think that invoking Vim&rsquo;s formatting with gw from Normal mode simply wraps text at whatever 'textwidth' is set to."},{"title":"Vim and Git","link":"https:\/\/vimways.org\/2018\/vim-and-git\/","pubDate":"Wed, 05 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/vim-and-git\/","description":"Vim and Git are both highly complex, configurable developer tools. Developers who use Vim are likely to also need to use Git frequently. This article attempts to explore how these two tools can interact in many ways.\nFirst off, I&rsquo;m not going to prescribe any particular workflows, or argue for or against a particular method. There are just too many options and you are encouraged to develop your own workflow."},{"title":"One Vim: managing multiple files with ease","link":"https:\/\/vimways.org\/2018\/one-vim\/","pubDate":"Tue, 04 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/one-vim\/","description":"Vim is a powerful editor. But like many powerful things, sometimes it can be used in less-than-powerful ways. One of those weaker ways is to only edit one file at a time, bouncing back and forth between editor and the shell or file explorer. Vim can easily handle multiple files at the same time, and this post will show you some of the built-in commands that are available to help out."},{"title":"From .vimrc to .vim","link":"https:\/\/vimways.org\/2018\/from-vimrc-to-vim\/","pubDate":"Mon, 03 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/from-vimrc-to-vim\/","description":"You can\u2019t have everything. Where would you put it?\n\u2013 Steven Wright\n Attack of the 5,000-line vimrc Vim is an endlessly configurable and extensible editor, with a culture of users sharing configuration for their ~\/.vimrc or ~\/.vim\/vimrc startup files. These files tend to expand over time. New users start by setting only a few global defaults for options like 'expandtab' and 'wrap', and then add custom mappings, functions, filetype-specific logic, and third-party plugins, often under an ever-shifting mantle of plugin managers."},{"title":"You Should Be Using Tags In Vim","link":"https:\/\/vimways.org\/2018\/you-should-be-using-tags-in-vim\/","pubDate":"Sun, 02 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/you-should-be-using-tags-in-vim\/","description":"I love you; you complete me.\n\u2013 Dr. Evil\n I first came to Vim by recommendation. I was looking for a good Python IDE (at the time I was new to the language) and one recommendation was to use Vim with a variety of plugins added on top. That Vim could do a lot of the things I thought only an IDE could do came as a bit of a shock."},{"title":"The power of diff","link":"https:\/\/vimways.org\/2018\/the-power-of-diff\/","pubDate":"Sat, 01 Dec 2018 00:00:00 +0000","guid":"https:\/\/vimways.org\/2018\/the-power-of-diff\/","description":"Lots of people use vimdiff to understand and handle diffs in console mode. While there exist more specialized tools for comparing files, vimdiff has always worked well enough for me.\nThe inefficiency of the external diff However, Vim&rsquo;s diff mode was seriously lacking. This was basically because it needed to write down temporary files, shell out and run a manual diff command and parse the result back and as one can imagine, this could be slow and was seriously inefficient."}]}}