<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vimways</title>
    <link>https://vimways.org/</link>
    <description>Recent content on Vimways</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 02 Jan 2020 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://vimways.org/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Making Things Flow</title>
      <link>https://vimways.org/2019/making-things-flow/</link>
      <pubDate>Thu, 02 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/making-things-flow/</guid>
      <description>Making things flow Changing the behaviour of one&amp;rsquo;s editor is a common subject, but what if the desired behaviour can&amp;rsquo;t be achieved by configuring a setting offered by your editor? Thankfully Vim is an editor which allows powerful scripting by its users.
Look Ma, no mappings! There&amp;rsquo;s nothing wrong with mappings. The purpose of this article is to explore more generalised methods whereas mappings generally have a more singular focus.</description>
    </item>
    
    <item>
      <title>Personal Notetaking in Vim</title>
      <link>https://vimways.org/2019/personal-notetaking-in-vim/</link>
      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/personal-notetaking-in-vim/</guid>
      <description>It pays you not to blink sometimes. It gives you a heck of a fright.
– My grandmother, on rapid change
 Intro Part of Vim&amp;rsquo;s power is how it can integrate with its environment. It can interact with external programs, external scripts can interact with Vim, and Vim is of course scriptable. Here, I&amp;rsquo;m going to detail an example of weaving Vim with other applications and the environment to implement a notetaking methodology that I personally use.</description>
    </item>
    
    <item>
      <title>Latex in Vim</title>
      <link>https://vimways.org/2019/latex-in-vim/latex-in-vim/</link>
      <pubDate>Tue, 31 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/latex-in-vim/latex-in-vim/</guid>
      <description>Latex is a text-based description of document structure. Basic text-formatting is augmented with a number of packages enabling mores specific behaviour. Latex has become a standard in publishing in many fields. But its use is by no means restricted to that. I use Latex for keeping notes, creating presentations and any other kind of formatting where plain-text is not quite enough.
Search for Latex editors and you will find a plethora of Latex specific editors: TexStudio, TexWorks, Lyx and many more.</description>
    </item>
    
    <item>
      <title>A Test to Attest To</title>
      <link>https://vimways.org/2019/a-test-to-attest-to/</link>
      <pubDate>Mon, 30 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/a-test-to-attest-to/</guid>
      <description>&amp;ldquo;Regression testing&amp;rdquo;? What&amp;rsquo;s that? If it compiles, it is good; if it boots up, it is perfect.
– Linus Torvalds, linux-kernel mailing list, April 1998
 System under test First, let&amp;rsquo;s get this out of the way: this is not an article about testing. I&amp;rsquo;m not going to tell you why you should or should not test things (hint: you should) or how you should do it (hint: integration testing is always better than unit testing), what you should test (hint: everything) or what colour socks you should wear when you install the JavaScript testing framework that was just released on the latest social network (hint: purple always purple).</description>
    </item>
    
    <item>
      <title>Vim&#39;s default colors</title>
      <link>https://vimways.org/2019/vims-default-colors/</link>
      <pubDate>Sun, 29 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/vims-default-colors/</guid>
      <description>Either the well was very deep, or she fell very slowly, for she had plenty of time as she went down to look about her and to wonder what was going to happen next.
 Lewis Carol, Alice&amp;rsquo;s Adventures in Wonderland   Colorschemes One day I thought I&amp;rsquo;d set about creating a minimal colorscheme for Vim. The idea of having minimal highlighting to force a fuller reading and comprehension of code intrigued me and I wanted to try it for myself.</description>
    </item>
    
    <item>
      <title>Vim and the Working Directory</title>
      <link>https://vimways.org/2019/vim-and-the-working-directory/</link>
      <pubDate>Sat, 28 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/vim-and-the-working-directory/</guid>
      <description>If you assume that there’s no hope, you guarantee that there will be no hope. If you assume that there is an instinct for freedom, there are opportunities to change things, there’s a chance you may contribute to making a better world
– Noam Chomsky
 What is the cwd in a command line prompt? cwd is short for &amp;ldquo;current working directory&amp;rdquo;.
Every command you run has its own current working directory.</description>
    </item>
    
    <item>
      <title>Indentation Without Dents</title>
      <link>https://vimways.org/2019/indentation-without-dents/</link>
      <pubDate>Fri, 27 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/indentation-without-dents/</guid>
      <description>Multiline function invocations generally follow the same rule as for signatures. However, if the final argument begins a new block, the contents of the block may begin on a new line, indented one level.
– Style Guidelines, Rust Documentation
 Automatic indentation can be a great joy to use - but also equally irritating when implemented incorrectly. In this article I will attempt to guide you through writing a Vim indentation plugin for a subset of the MATLAB programming language.</description>
    </item>
    
    <item>
      <title>Writing a Vim Plugin</title>
      <link>https://vimways.org/2019/writing-vim-plugin/</link>
      <pubDate>Thu, 26 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/writing-vim-plugin/</guid>
      <description>While there are many &amp;ldquo;tutorials&amp;rdquo; for writing plugins in Vim, I hope this one will be a little bit different from what is out there, because it won&amp;rsquo;t be about writing plugin per se. If you want to find information about that then you should check out :h write-plugin. I want this article to be about how plugins come to life, using my own experience on writing vim-backscratch as an example.</description>
    </item>
    
    <item>
      <title>Vim Filters, External Commands, And The Shell</title>
      <link>https://vimways.org/2019/vim-and-the-shell/</link>
      <pubDate>Wed, 25 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2019/vim-and-the-shell/</guid>
      <description>Don&amp;rsquo;t love me, flaco. Love your mom. I just play football.
– Juan Roman Riquelme
 There is a day in the life of a man when he realizes that the traditional way of using a computer is flawed, that graphical interfaces were a bad idea, that the mouse is an absurd invention, that a life away from the home row is not a life worth living.
The UNIX philosophy becomes a religion when you are hit with the realization that best solutions are not provided by gigantic almighty monoliths, but are the joint effort of several minimal, highly specialized components.</description>
    </item>
    
    <item>
      <title>Vim and Mercurial</title>
      <link>https://vimways.org/2018/vim-and-mercurial/</link>
      <pubDate>Sun, 23 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/vim-and-mercurial/</guid>
      <description>In a previous entry in this year&amp;rsquo;s Vimways advent blogging, Samuel Walladge detailed how to make Vim and Git work together&amp;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&amp;rsquo;m totally going to plagiarize Samuel&amp;rsquo;s article structure! Let&amp;rsquo;s dive in.
The Mercurial perspective Just like Git, Mercurial needs to open a text editor for some operations:</description>
    </item>
    
    <item>
      <title>Search for us, newbies</title>
      <link>https://vimways.org/2018/searches-for-us-newbies/</link>
      <pubDate>Tue, 18 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/searches-for-us-newbies/</guid>
      <description>Search in Vim for newbies Now that we&amp;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.
One 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&amp;rsquo;t think counting words is any efficient either.</description>
    </item>
    
    <item>
      <title>if_pyth (= the python interface) cookbook</title>
      <link>https://vimways.org/2018/a-python-interface-cookbook/</link>
      <pubDate>Mon, 17 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/a-python-interface-cookbook/</guid>
      <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&amp;rsquo; package repositories such as PyPI and to write or use extensions in C, C++ or similar.
This article aims to be a cookbook for using if_pyth which is Vim&amp;rsquo;s Python interface.</description>
    </item>
    
    <item>
      <title>Transactions Pending</title>
      <link>https://vimways.org/2018/transactions-pending/</link>
      <pubDate>Sun, 16 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/transactions-pending/</guid>
      <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.
– C. S. Lewis
 What are Text Objects? Even if you are a newcomer to vim, you&amp;rsquo;re likely familiar with the concept of a text object. In vimtutor, this concept is introduced pretty early on.</description>
    </item>
    
    <item>
      <title>Vim&#39;s social life</title>
      <link>https://vimways.org/2018/vims-social-life/</link>
      <pubDate>Sat, 15 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/vims-social-life/</guid>
      <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.
Yet Vim&amp;rsquo;s startup story is relatively unpolished. Shell tools are expected to consume standard input (&amp;ldquo;stdin&amp;rdquo;) and emit to standard output (&amp;ldquo;stdout&amp;rdquo;)—but Vim supports this awkwardly, at best. The endeavor is never mentioned in Vim tutorials, including the &amp;ldquo;Unix as IDE&amp;rdquo; hymnals. And it is puzzled out of Vim&amp;rsquo;s documentation only by careful inspection.</description>
    </item>
    
    <item>
      <title>Opening Non-Vim File Formats</title>
      <link>https://vimways.org/2018/opening-non-vim-file-formats/</link>
      <pubDate>Fri, 14 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/opening-non-vim-file-formats/</guid>
      <description>The mechanic that would perfect his work must first sharpen his tools.
&amp;ndash; Confucius
 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.</description>
    </item>
    
    <item>
      <title>Death by a thousand files</title>
      <link>https://vimways.org/2018/death-by-a-thousand-files/</link>
      <pubDate>Thu, 13 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/death-by-a-thousand-files/</guid>
      <description>A guy told me one time, &amp;ldquo;Don&amp;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.&amp;rdquo;
– Neil McCauley (1995)
 Moving around a buffer or project without aim, mainly in search of something &amp;ldquo;interesting&amp;rdquo;, is not something easy to optimize as &amp;ldquo;interesting&amp;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.</description>
    </item>
    
    <item>
      <title>Debugging your Vim Config</title>
      <link>https://vimways.org/2018/debugging-your-vim-config/</link>
      <pubDate>Wed, 12 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/debugging-your-vim-config/</guid>
      <description>Vim configuration is powerful and complex. I mean, this isn&amp;rsquo;t setting a few options in an INI file; we&amp;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&amp;hellip;
There 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.</description>
    </item>
    
    <item>
      <title>Colder quickfix lists</title>
      <link>https://vimways.org/2018/colder-quickfix-lists/</link>
      <pubDate>Tue, 11 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/colder-quickfix-lists/</guid>
      <description>I may be an oldie, but I&amp;rsquo;m a goodie too
– &amp;ldquo;Eighteen with a Bullet&amp;rdquo;, Pete Wingfield
 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.</description>
    </item>
    
    <item>
      <title>Runtime hackery</title>
      <link>https://vimways.org/2018/runtime-hackery/</link>
      <pubDate>Mon, 10 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/runtime-hackery/</guid>
      <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.
— Friedrich Nietzsche
 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:
 Disabling specific parts of the stock runtime directory</description>
    </item>
    
    <item>
      <title>The Mapping Business</title>
      <link>https://vimways.org/2018/the-mapping-business/</link>
      <pubDate>Sun, 09 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/the-mapping-business/</guid>
      <description>Time For More Cookin&amp;rsquo; In first part, we went through the basics of mappings, and how they fit into the big picture of Vim design and use.
We are now going to see a few common recipes to write slightly more advanced mappings.
Follow The Yellow Power Cord In a nutshell, &amp;lt;Plug&amp;gt; is a Vim notation for some special key sequence that the user cannot type. What use is it?</description>
    </item>
    
    <item>
      <title>For Mappings And A Tutorial</title>
      <link>https://vimways.org/2018/for-mappings-and-a-tutorial/</link>
      <pubDate>Sat, 08 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/for-mappings-and-a-tutorial/</guid>
      <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 &amp;ldquo;programs&amp;rdquo;, either to accomplish ad hoc tasks via recorded macros, or to address more general cases, thanks to commands, functions&amp;ndash;and mappings.</description>
    </item>
    
    <item>
      <title>Make your setup truly cross-platform</title>
      <link>https://vimways.org/2018/make-your-setup-truly-cross-platform/</link>
      <pubDate>Fri, 07 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/make-your-setup-truly-cross-platform/</guid>
      <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.
But 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.</description>
    </item>
    
    <item>
      <title>Formatting lists with Vim</title>
      <link>https://vimways.org/2018/formatting-lists-with-vim/</link>
      <pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/formatting-lists-with-vim/</guid>
      <description>Use of formatoptions and the fo-table We tell Vim how formatting should be carried out by setting &#39;formatoptions&#39;. This is set to a string of characters whose meaning is described in :help fo-table. Rather than repeating what&amp;rsquo;s in the help it&amp;rsquo;s sufficient to say the default is formatoptions=tcq, which may lead users to think that invoking Vim&amp;rsquo;s formatting with gw from Normal mode simply wraps text at whatever &#39;textwidth&#39; is set to.</description>
    </item>
    
    <item>
      <title>Vim and Git</title>
      <link>https://vimways.org/2018/vim-and-git/</link>
      <pubDate>Wed, 05 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/vim-and-git/</guid>
      <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.
First off, I&amp;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.</description>
    </item>
    
    <item>
      <title>One Vim: managing multiple files with ease</title>
      <link>https://vimways.org/2018/one-vim/</link>
      <pubDate>Tue, 04 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/one-vim/</guid>
      <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.</description>
    </item>
    
    <item>
      <title>From .vimrc to .vim</title>
      <link>https://vimways.org/2018/from-vimrc-to-vim/</link>
      <pubDate>Mon, 03 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/from-vimrc-to-vim/</guid>
      <description>You can’t have everything. Where would you put it?
– Steven Wright
 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 &#39;expandtab&#39; and &#39;wrap&#39;, and then add custom mappings, functions, filetype-specific logic, and third-party plugins, often under an ever-shifting mantle of plugin managers.</description>
    </item>
    
    <item>
      <title>You Should Be Using Tags In Vim</title>
      <link>https://vimways.org/2018/you-should-be-using-tags-in-vim/</link>
      <pubDate>Sun, 02 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/you-should-be-using-tags-in-vim/</guid>
      <description>I love you; you complete me.
– Dr. Evil
 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.</description>
    </item>
    
    <item>
      <title>About Vimways</title>
      <link>https://vimways.org/about/</link>
      <pubDate>Sat, 01 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/about/</guid>
      <description>What? Vimways is a Vim-themed advent calendar by @robertmeta and @romainl. Largely inspired by the early 24ways, our primary goal is to publish one high quality article about Vim per day during the twenty-four days before Christmas.
That&amp;rsquo;s twenty-four articles written by knowledgeable users—both famous and non-famous among the community—distilled from the 1st of December to the 24th of December.
When? Every year, hopefully, from the 1st of December to the 24th of December.</description>
    </item>
    
    <item>
      <title>The power of diff</title>
      <link>https://vimways.org/2018/the-power-of-diff/</link>
      <pubDate>Sat, 01 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://vimways.org/2018/the-power-of-diff/</guid>
      <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.
The inefficiency of the external diff However, Vim&amp;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.</description>
    </item>
    
  </channel>
</rss>