Vimfags assemble

shill vim to me

what makes it better than a "conventional" editor like nppp/sublime?
how do you avoid breaking your wrists while using it?

typing fast is not a trait a programmer needs, only secretaries need to type fast


(emacsfags not welcome, please stay out)

Other urls found in this thread:

stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118
vimcasts.org/
github.com/tpope/vim-commentary
github.com/amix/vimrc
vim-adventures.com/
ahammer.ch/manuals/linux/vi/joy84.html
github.com/luochen1990/rainbow
github.com/istib/rainbow-blocks
github.com/itchyny/lightline.vim
github.com/vim-airline/vim-airline
twitter.com/SFWRedditImages

Anyone arguing "fastr typan speeeed" is literally retarded and you should shoot him in the dick. What Vim does well, even compared to Emacs, is edit quickly. Whereas Emacs has its thousands and thousands of keybinds, they're mostly bound on modifier keys. That's because Emacs normally only has one mode, which we might call the 'insertion' mode. And since you need to be able to type, all the bare alpha keys have to self-insert into the buffer you're working in.

Vim, on the other hand, has both an insertion mode and some other mode I don't know the name of because I don't actually use Vim. What I do know is that when you're in the right mode, all those top-level keys (like 'a' by itself, without modifiers, like I said earlier) are bound to various functions. So instead of page down being Ctrl+whatever-key, it's just whatever-key. That's efficient, and when you multiply that efficiency over thousands of editing commands like that, the efficiency multiplies too.

Vim also does numeric modifiers nicely— you type 20 and Vim will repeat the next function you want to execute 20 times. Even in Emacs you have to press C-u20 to do that, and that's an extra modifier and an extra keystroke. Just another example of the same principle.

Fuck you I won't do what you tell me! Elisp 4 lyfe fagguts.

I type a bunch of good shit from my phone and the browser crashed. I'm not typing it all again but the short of it is it takes time and effort but I can transform vim and emacs into an editor specifically tailored to me, instead of settling on an editor that is good enough for most people/tasks.

Mobiles are trash.

You should feel bad using anything more than a dumb-phone.

dumb phoneposter

...

what happens if you press keys while in the wrong mode?

As is anyone using it as a strawman.

There's the 'insert' mode, where pressing the h key inserts the letter h, and there's 'command' mode, where it moves the cursor one character to the left. You switch between these with, I think, the escape key and the i key.

It has many features which make it generally a good editor which is also usable across many file types.

Some points off top of my head:
- modal, which means many quickly accessible functions
- movement/editing grammar allow you can apply many of those functions to arbitrary chunk of text quickly - ci( - delete the content inside of matching parentheses and go to insert mode, "+yat yank (copy) a matching html ... and copy it into the + register (which happens to be special register for the system clipboard)
- programming features like autocomplete and folding, either basic and usable even if it's entirely new language with weird syntax (fold by indentation, basic completion), or more advanced (syntax folding, tags, language specific plugins)
- visual mode is excellent for mass editing a block of similar lines, and more
- if a repetitive task is too complicated for visual mode, you can easily record a macro
- being universal editor means that many features, which would otherwise require specialized tool, are readily available - for example spellchecker/corrector inside a *.c file

I'm sure I missed some things...


That's normal mode, command mode is for entering ex commands and you enter it with :. Also don't forget visual mode.

And don't forget: ^] is usually equivalent to esc; no need to slow yourself down by reaching all the way for escape key.

The vim manual sucks so much though. I like that in emacs you can find documentation for any function, or any key combination.

Hey OP, how would you like it if your brain was wired straight into your editor? Like you could think "I want to move these lines one paragraph down" and then it would happen. Now imagine that without a botnet getting shoved in your skull, instead you use the connection from brain to fingers, to keyboard, to computer.

What makes Vim's modal editing so powerful is that it is a sort of language in itself. It's explained well here:
stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118


Vim does not let you type faster, no editor does that. Vim lets you do more with fewer keystrokes. After a while you will be thinking something and your fingers will type the command on their own. Just how when you learn a foreign language your brain thinks and your mouth forms the sounds on its own.

Because sublime development goes dormant for months on end and enters radio silence. I saw a lot of sublime fans moving to atom because they thought sublime development was dead. It's not, but they're horrible at communication.

try out vimtutor for about 10 minutes and see for yourself. it's really the best way to see what it is like.

Why the fuck would you need news updates on development of a text editor?

Same reason you'd pay for a poor clone of existing libre software in the first place.

I use emacs, and the less I hear from Stallman the happier I am. (I know he's not the current maintainer, but still). We're talking about the special snow flake generation. If they don't see a github repo that has been updated within the past week, they feel the project has abandoned THEM. And they are important, they deserve to be HEARD. Kek, you get the picture.

Go back to 4/g/ kid

If you're not autistic, you just use insert mode and go happily about your life, just like typing in emacs.
If you're more autistic, you start slowly learning keys, like 0 @ $ % = q w W CTRL-W (with h j k l ] |) e E ge r t T y u CTRL-U i I CTRL-I o O CTRL-O p P a A d D CTRL-D f F g G h H j J k K l L ; z zf za zA zm zM zr zR x X c C v V CTRL-V b B n N m M , < . > / ?
then you add options, autocommands, etc. to your vimrc, and learn ex-commands (! enew new vnew ls b bn bp bufdo s w sav map (and variations) etc.) and start writing vimscript, and before you know it you are a top-tier autist at vim.

You press u to undo whatever the fuck you did. If it says recording, you press q again.


You're not supposed to read it top to bottom.
how to learn vim:
1. finish vimtutor
2. when editing, wonder what , command, or option does
3. type :h or :h :command or :h 'option'
4. occasionally read some random topic/file from :h
5. ????
6. PROFIT!

Horrible things.


"hjkl", xcape

>0 @ $ % = q w W CTRL-W (with h j k l ] |) e E ge r t T y u CTRL-U i I CTRL-I o O CTRL-O p P a A d D CTRL-D f F g G h H j J k K l L ; z zf za zA zm zM zr zR x X c C v V CTRL-V b B n N m M , < . > / ?

Fucking hell, I just want to edit text

It's like being completely alone your whole life is so much fun.

go back to facebook you sheep

Then use Nano or whatever. Vim is a powertool and you use it for powertasks.

>If you're more autistic, you start slowly learning keys, like 0 @ $ % = q w W CTRL-W (with h j k l ] |) e E ge r t T y u CTRL-U i I CTRL-I o O CTRL-O p P a A d D CTRL-D f F g G h H j J k K l L ; z zf za zA zm zM zr zR x X c C v V CTRL-V b B n N m M , < . > / ?

This. People forget that Vim is not vi. If you want to really make Vim your own you will sooner or later dig into its meat and install plugins or customize it yourself.

Whatever you say, lonely wolf.
Be careful not to cut someone with that edge of yours.

Alright, now fuck off back to normiebook

You almost got me, user, but...

don't blame me for trying

any scintilla based editor can be just as good as vim

You don't have to learn anything, not even how to enter insert mode.
Start vim in easy mode in GUI and use the drop-down menus instead of ex-commands. If you want Notepad-esque keybindings, just source $VIMRUNTIME/mswin.vim in your .vimrc.

Just finishing vimtutor is enough for most people, and a massive improvement over a basic editor.
You make things as hard as you want. In the end, the only limiting factor is your willingness to learn.

slowly trying to learn vim (and LaTeX) here.

Anyone got any tips for getting better? I already try to use it as much as I can even by using more terminal programs like mutt and jekyll that allows me to directly use vim for writing things onto them.

...

...

I bet you i am just as productive with my normal editor than any of you with your faggy vimshit

Just keep using it and when you find yourself repeating the same motions over and over again ask yourself if there is a better way of doing things. I found these screencasts very useful:
vimcasts.org/

The guy also wrote a book (Practical Vim), I have it and it's pretty good. Don't try to learn all of Vim at once, just keep using it and you will come to know it better as you go. When you find out about something new look up its manual entry. Don't go wildly copy-pasting other people's settings or installing a bunch of plugins just because someone told you they are awesome.

that's the general philosophy I take when it comes to linux. I never try to learn everything at once but just what I need and how I can do better.

Thanks for the link and book! I'll look into them

I use vim because I'm lazy, not because I want to be more productive. Any normal editor requires way too much effort on my part.

...

Well I'm not retarded, so I mastered the few basic commands in the first few minutes, I didn't do much learning or configuring after that.
Keybinds in a normal editor could only be very clumsy and limited, they would require effort to set-up and would be more painful to use. And this is compared to my very limited knowledge of vim and a very minimal vimrc.

How are they cryptic? Ctrl+ keyboard shortcuts are as much cryptic. Any keybinds are always going to be "cryptic", because the whole point is that you don't have to spell it out, you just press one key for which you already know what it does.

How do you do the following in vi/vim?

Always looking to reduce my workload so if it is easier in vim i might make the switch

Vim doesn't need to be shilled. Y? RTFM on vim. Simple, powerful, ubiquitous.

For any of the commands the shortest unique form will work (e.g. :h instead of :help). Some commands even have an explicit short form like :qa for :quitall. You can also rebind commands to keys to make it even simpler. All of these solutions are going to seen cryptic for someone who doesn't know the command language, it's like asking how to order a beer in French and just hearing the sounds; if you don't know French it's just some magic words, but if you do know French you understand the meaning behind what was said.

Use :bnext and :bprevious
:buffer , but you can use a plugin to fuzzy-find buffer names
github.com/tpope/vim-commentary
type the line number followed by G
} and {
w, b, e, ge
f (find) or t ('til as in until) followed by the character; in you case it would be fb.
0wv$ stands for "jump to beginning of the line, jump to the beginning of the next word, enter visual mode, jump to the end of the file". Rebind it to a key if you want to use it frequently.
0v$ if you want character-wise selection, or V if you want line-wise selection
v
vi) or vi( or vt) if you only want from the current cursor position until the closing brace. If you want to include the braces as well use a (around) instead if i (inside)
vip stands for "visual inside paragraph" (excludes surrounding whitespace) and vap stands for "visual around paragraph" (includes whitespace)
wv (w is the general prefix for window management)
wh (left), wj (down), wk (up), wl (right)
dd or d_ (_ stand for current line, duplicating a command is a shorthand for _)
yyp or y_p (yank current line, paste it below current line)
:set syntax=
x (intended specifically for deleting the current character) or d (space stands for the current character) for character, diw (delete inside word) for current word excluding surrounding whitespace and daw (delete around word) including one surrounding whitespace.

pic related

Sometimes I do, but only via ssh.

I'm currently using NeoVim with github.com/amix/vimrc extended as base and a few plugins (Dein, deoplete, deoplete-jedi, deoplete-clang, airline, etc). Where can I go from this? How to make my own config? Do I make my own config using this guy's one?

Emacs masterrace

I use both. I switch whenever I feel bored.
Only use them because they look cool. (To me) they offer literally nothing that VSCode can't offer. I debug externally using gdb, so not even that.

You throw out that guy's config and use Neovim vanilla. Then when you find yourself thinking "I really wish this was like this" you make it that way. If you find yourself thinking "Neovim really should have a thing" you get a plugin just for that. And if there isn't one you write your own (as a last resort).

The init.vim (or vimrc) is something you tailor specifically to your needs. It will grow organically according to your ideas of what an editor should be like. Using someone else's init.vim means you adjust yourself around someone else's idea of what a text editor should be like. The time it takes you to adjust yourself might as well be used to adjust Neovim to you.

Protip: swap your right ctrl and right alt keys. You should be using your thumbs to press those modifiers, not your goddamn pinky fingers.

Either get ideas from someone's vimrc, or skim the options and pick the ones that suit you. Don't just copypaste; try to understand what the stuff you're copying does. And limit yourself to a sane amount of add-ons. You don't need Minesweeper or Tetris on a text editor.

It's like you want to strain your fingers.
a laptop with non-pleb scissor switches has just enough clearance so you can press CTRL with your palm.

Caps lock -> Ctrl master race.

vim primarily is an admins editor, not a programmers editor. It's highly effective at rapidly viewing and editing self-contained configuration files and other data. It offers clean ways to make complex changes, and it lets you navigate large files quickly and precisely.

A programmer most likely doesn't need those features as often. For example, a programmer doesn't have tasks like "Change the protocol of all URLs that point to a .png file to https, then remove every child node of their entry in this 20k line XML file", and in the best case he spends more time thinking than typing. For me i use vim only for administrative things and editing config files on my own machine, and large IDEs for programming. They are slow and bloated, but at the end of the day once you have to step out your comfort zone and work with large, horrible legacy codebases you'll know why they are so popular. You can expand vim with plugins into this as well, it just takes a lot of time and tinkering.

Exactly how I approach it. I use vim or plain nvi with stock config just for editing config files and nothing else. Emacs/Sublime or some special purpose ides for the rest.

I use vim because Emacs literally segfaults during a hardened gentoo merge. This is because they actually dump the state of the bootstrap emacs binary into the actual emacs executable during install (!) to reduce initializing all the bloat, and it doesn't play well with ASLR because it's a shitty fucking hack.

Anything I might want to do, I can do in Vim very easily and quickly in fewer keystrokes than other editors. It's pretty simple.

I want to:

* Replace all text between a pair of quotation marks? ci"
* Replace all text between a pair of parens, including the parens? ca(
* Delete a pair of brackets and everything between? da[
* Select a rectangular block and do something with it? C-v
* Do anything to any amount of text, and repeat those keystrokes? Macros to the rescue.
* Delete every line beginning with "#TEMP"? :g/^#TEMP/d

I don't really know if Vim makes me faster, and I don't care. Vim makes editing code very comfortable, and maps my thought processes during editing as close to the editor as possible, as I usually think in terms of "I need to replace everything in these parens", "I need to do these exact keystrokes 50 times", or "I need to delete every comment line with a specific string in it".
Is Vim perfect? Fuck no. Syntax folding is buggy as fuck and really hard to extend with extra layers of folding logic, Vimscript is dogshit, and configuration and plugins are a nightmare (even in NeoVim, which is my primary editor). It's still the best editor I have used so far.

Kakoune is very fucking cool looking, too, though its plugin system is bizarre and hard to use at best, and it is young enough that there are still bugs and it can't quite map everything that Vim can do. It's a promising start, and if it keeps the development momentum, I'll gladly shift to it from Vim when it gets there. For one, it operates with a constant selection, and using all movement commands changes your selection (so 13W moves and selects 13 words). It is built around a constant-selection paradigm, which is mind-bending to use.

In this moment I am Euphoric. Not because of any phony God's blessing. But because anything I might want to do, I can do in Vim very easily and quickly in fewer keystrokes than other editors. It's pretty simple.

*a
Fukken saved. All hail ed!
.
*w post
27
*q

How to train using vim?

learn the absolute basics by force, then just use it regularly and pick up new tricks from time to time

Start small. Get just good enough to do everything Notepad does. Build from there. Don't aim to know the editor in its entirety. Once you settle in, you'll probably actively use only 20-30% of its features on a daily basis.

vim-adventures.com/

It actually follows the unix philosophy, for a start.

The whole thing is pretty lightweight and modular; no real frills, and you can use it to edit any kind of text.

Commands can be chained together, and once you get used to them you can quickly move around, tweak segments, make modifications... vim isn't about "faster typing", it's about faster editing, which means getting your cursor where it needs to go as quickly as possible and minimizing keystrokes.

If you want a flashy, modern text editor, there's a ton of options, but a lot of them suck. Emacs is fine for some people, but it's also monolithic, and while some people might like checking their e-mail from their text editor, I don't. Vim is also extensible, and while modern Emacs is, too, Vim really is a solid central core. Vim modifications tend to be around different ways to view and edit text, while Emacs modifications tend to add new functionality using the existing system.

What the fuck happened to this thread? Attempting to revive

FYI: 44 previous posts were deleted for some reason, I revived the posts. Fucking shitty alacrity haskell FP meme cache garbage.

stop saying that please, do you unix philosophers pray to ken thompson as he helps google ruin everything beloved to comptuer programmers?
SAM and ACME are the only unix editors I can name besides ed.
there are countless articles on why vi is mental masurbaion with roughly the same driving principles as berkley sockets.
I use vi but learning it was a waste

Threadly reminder that vi is modal not because it works so well, but because Bill Joy never realized it was unnecessary.
ahammer.ch/manuals/linux/vi/joy84.html

does it work on windows?

ugh

LEAVE

ughhhhhh can you just like not???? #groanzone

ugh

I'm taking a unix course in uni and the instructor/author of the book we're using (TLCL) both suck vim's dick.

vim is fucking cancer.

just use emacs lmao

I plan on it (or n++ in wine), but it's still obnoxious to have to deal with it on tests. Good thing the semester's almost over.

this

Your exam/test dictates what text editor you have to use? That's retarded.

You can meme about monolithic but people choosing to do everything in emacs really says a lot more about how crappy the rest of gnu/linux actually is to use.

In that case you could argue that notepad, or nano, or any editor is acceptable, since the rate at which work is getting done does not matter

You actually break your wrists less by using it, because you need to reach for "out there" keys like control, alt, backspace, etc.. less often. A common keybind is caps lock -> esc, so you don't need to reach for that either

Vim is a very effecient editor. It has a lot of features that allow you to get work done fast. If you're used to the keybindings, then you can navigate the text as quickly as you would type. A lot of plugins also exist to make it a lot more effecient than such editors like n++ or sublime or atom or whatever.

Are you suggesting that there's no reason why anyone could possibly need a visual text editor without a gui?

all ugh

I need a good scope / context highlighting plugin
already did. Didn't find what I needed, which is something like rainbow-blocks mode for emacs

I'm not sure what you mean. Something like this?
github.com/luochen1990/rainbow

It does rainbow parentheses, but it is not limited to parentheses alone, it can also highlight matching HTML tags as well for example.

Thanks for taking the time to look and reply user.
I already have rainbow parens.
What I want is to highlight everything INSIDE the parens in the same color.
More like this: github.com/istib/rainbow-blocks
The depths of nesting will determine the color.

That's an interesting idea, but I don't know of any plugin like that. I don't think I would use it myself for most languages, but it does look good on Lisp. Nvim has buffer highlighting (:h api-highlights), so maybe that could be a good starting point for such a plugin.

Vim noob here.

How do you get that nice looking bottom bar? I've so far only seen it on mac-vims.

See :h 'statusline' for the option. The format is pretty weird and complicated, so people have made some plugins to make creating a status line easier:
github.com/itchyny/lightline.vim (my choice)
github.com/vim-airline/vim-airline

vim is ass, use ne

Some of us ssh into other machines. I don't use sublime, etc for certain things because terminal.

Thanks!

Had to mess around with fonts a bit (for some reason I can't get the liberation-mono-powerline font to work) and also went and installed a better theme. Looks so much better!