<p>There are thousands of <code>vi</code> tutorials on the web, most of them generically listing all the commands. There are even videos on youtube which show basic functionality.</p>

<p>But does anyone know of a vi tutorial which focuses on the <strong>needs of programmers</strong>? </p>

<p>For example when I program in <strong>Perl</strong> with <code>vi</code>, moving to the "next paragraph" is meaningless.</p>

<p>I want to know which commands seasoned vi users combine to e.g:</p>

<ul>
<li>copy everything inside of parentheses</li>
<li>copy a function</li>
<li>copy and paste a variable (e.g. 2yw)</li>
<li>etc.</li>
</ul>

<p>I am sure there are lots of functions using multiple-file capability, and the maps, macros, reading in of files for template code, regular expression search, jumping to functions, perhaps minimal code completion, or other features that emulate what programmers have gotten used to in Visual Studio and Eclipse, etc. </p>

[{'answer_id': 47170, 'author': 'cschol', 'author_id': 2386, 'author_profile': 'https://Stackoverflow.com/users/2386', 'pm_score': 4, 'selected': True, 'text': '<p>A nice collection of <a href="http://rayninfo.co.uk/vimtips.html" rel="noreferrer">vimtips</a>.</p>\n\n<p>And the best Vim <a href="http://www.cheat-sheets.org/saved-copy/vimqrc.pdf" rel="noreferrer">cheatsheet</a> around.</p>\n'}, {'answer_id': 47557, 'author': 'zigdon', 'author_id': 4913, 'author_profile': 'https://Stackoverflow.com/users/4913', 'pm_score': 1, 'selected': False, 'text': '<p>I just ended up reading the vim manual a few times, over the years, picking up useful features on each iteration.</p>\n\n<p>One thing that really made vim work for me as a perl IDE was starting to use tags, as explained here: <a href="http://www.vim.org/tips/tip.php?tip_id=94" rel="nofollow noreferrer">http://www.vim.org/tips/tip.php?tip_id=94</a>.  Using the pltags script that ships with vim, you can jump around between modules to find your functions, methods, etc.</p>\n'}, {'answer_id': 48814, 'author': 'Jagmal', 'author_id': 4406, 'author_profile': 'https://Stackoverflow.com/users/4406', 'pm_score': 1, 'selected': False, 'text': '<p>If you are a beginner, vimtutor would be a good way to start with. (Type vimtutor on your shell and get going).</p>\n\n<p>And once you get hold of the basics of vim, you can look around web and figure out things for yourself.</p>\n\n<p><a href="http://mamchenkov.net/wordpress/2008/05/06/moved-to-gvim/" rel="nofollow noreferrer">This</a> and <a href="http://mamchenkov.net/wordpress/2004/05/10/vim-for-perl-developers/" rel="nofollow noreferrer">this</a> may be an interesting read.</p>\n'}]
['https://Stackoverflow.com/questions/47167', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/4639/']