Others just search for known text, which IMO is a habit I need to get into. I "got" hjkl after I disabled the cursor keys for a day, but I never followed up and disabled hjkl (or maybe even w and b!?) to get super efficient.
Also with the right setting(I think incsearch) Vim immediately jumps to the first result as you type, so I often use search to quickly peek at some code and then jump back with Esc when it doesn't warrant splitting the buffer.
But I do still struggle a bit with moving within the line - w and b tend to "get caught" in long series of different symbol categories that Vim will all see as separate words/tokens. At least I got my setup with the "camelcasemotion" plugin working, which is a great help with long identifier names.
The only time I find using :number is when I am exploring a codebase elsewhere, e.g. using GitHub’s web interface, and want to jump to a particular line in Vim to make edits—rarely happens.
It's not pretty, one could argue that the mouse is more efficient for such movements, but for me it's faster in practice than moving my hand to the mouse/trackpad, or than looking up a line number (either absolute or relative) and then typing it. And it has no mental burden.
As for showing line numbers, I'm often doing this to read logs on a remote VM. In those scenarios, having easy access to where you are in the file is really helpful.
set listchars=tab:>-
set listchars+=trail:⋄
This shows markers for tabs and trailing whitespaces.The latter will make you very sad when you browse other people's code.
I also find it especially useful in vi when working with config files. I’m sure you are aware of this feature but in case others aren’t, in vi if you type numbers before a command, it runs that commend n times. So you can quickly copy or delete multiple lines.
It just goes to show how deeply personal a preference a persons code editor is.
I use shift+v and a j/k relative jump to select a range of lines, then do the operation. Which is undeniably the slower way.
Didn’t know how dyslexia affects this, I will keep that in mind in case I happen to work with someone with it.
set list listchars+=space:•
This adds a lot of clutter! It's better to show only indentations (of course, using tabs): set listchars=tab:├─ " mac clipboard {{
if has("clipboard")
set clipboard=unnamed
endif
" }} mac clipboardBut apparently according to peer comments, there are ways to yank into clipboards, which is pretty cool.
That works in tmux too. So you can have use the terminal but have it behave as a GUI app in most respects. For example being able to use a touchpad to quicly enlarge/resize splits or scroll a window can be quite useful.
I've always found syntax highlighting super distracting, but everyone i have met thinks im crazy.
Otoh i do love me line numbers.
Wow, don't ever use VSCode then! There are hovering diacritics and proofing marks everywhere!
It does real-time syntax checking and quick compilation to check interfaces (at least with TypeScript, JS, HTML, pug, css, Vue, and NodeJS).
I resisted fancy editors for years, as I found them crazy annoying, but over the past few months I've grown to adore VSCode because it has made me about 50% more efficient: I don't have to run the app to find errors, the IDE finds them for me, and it works on Win10, macOS and Linux. It is extremely context aware of my project.
It's like JetBrains but free (or Android Developer Studio, also made by JetBrains...).
There’s definitely something real about too much colours; the archetypal example of colouring our human language tokens by type (verbs, nouns, etc) making no sense sure rings home after a while.
But I found very much use of “colour”+ themeing for two things:
- comments vs code, one toned down vs the other, ideally swappable with a hotkey
- delimited content such as strings. It sure saves a lot of time when you get an imbalanced delimiter nested in a forest and the whole of your file changes colour starting near the imbalance.
I’m very much of the opinion that a lot of syntax highlighting is just dumbed down token matching and badly designed (if at all designed), when it should be much smarter in alerting you of inconsistencies, and putting relevant content forward.
+ by colour I don’t necessarily mean literally in colour, bold or italics can serve well.
Colouring human language by tokens is a very fitting analogy.
I am sure there are corner-cases where I would want to enable it, such as were someone has been in the habit of commenting-out parts of a line.
I don't know anyone who uses syntax highlighting for natural-language prose, though I suppose there are some who do.
Sometimes also colors in general can get distracting and I just turn on grayscale system-wide, which also doesn’t play with syntax highlighting as text ends up being varying shades of gray with not enough contrast against the background.
Switching it off is the first I do.
:nmap <F12> :set invnumber<CR>
What I do like to enable in an editor is visible whitespace characters (helps notice levels of indent, for example). In Vim that can be accomplished with:
(Might take some tweaking to make whitespace appear subtly enough, depending on your color scheme.)