Skip to content

Instantly share code, notes, and snippets.

View romainl's full-sized avatar
💰
Alwayz Into Somethin'

Romain Lafourcade romainl

💰
Alwayz Into Somethin'
  • Razorfish France
  • Paris, France
View GitHub Profile
@romainl
romainl / devdocs.md
Last active June 19, 2023 04:31
Look up keywords on https://devdocs.io from Vim
@romainl
romainl / colorscheme-override.md
Last active June 27, 2025 01:23
The right way to override any highlighting if you don't want to edit the colorscheme file directly

The right way to override any highlighting if you don't want to edit the colorscheme file directly

Generalities first

Suppose you have weird taste and you absolutely want:

  • your visual selection to always have a green background and black foreground,
  • your active statusline to always have a white background and red foreground,
  • your very own deep blue background.
@romainl
romainl / environment.vim
Last active August 11, 2023 00:27
Do things differently depending on the environment
" MIT License
" Copyright (c) 2017 romain Lafourcade
" Permission is hereby granted, free of charge, to any person obtaining a copy
" of this software and associated documentation files (the "Software"), to deal
" in the Software without restriction, including without limitation the rights
" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
" copies of the Software, and to permit persons to whom the Software is
" furnished to do so, subject to the following conditions:
@romainl
romainl / align.vim
Last active August 4, 2023 07:45
Ultra lightweight aligning
" Use a bunch of standard UNIX commands for quick an dirty
" whitespace-based alignment
function! Align()
'<,'>!column -t|sed 's/ \(\S\)/ \1/g'
normal gv=
endfunction
xnoremap <silent> <key> :<C-u>silent call Align()<CR>
@romainl
romainl / curentline.md
Last active March 19, 2023 07:27
Insert the current line into the command-line

Insert the current line into the command-line

This is an intuitive command-line mode mapping to insert the current line.

It is no longer needed since 8.0.1787 because the feature is now built-in. See :help c_ctrl-r_ctrl-l.


My Vim-related gists.

@romainl
romainl / colorizenicks.vim
Created July 14, 2017 09:49
Colorize IRC nicks
hi u0 ctermbg=red
hi u1 ctermbg=yellow
hi u2 ctermbg=cyan
hi u3 ctermbg=darkgreen
hi u4 ctermbg=magenta
hi u5 ctermbg=darkred
let all_nicks = []
function! IsolateNicks(key, val)
@romainl
romainl / macros.md
Last active May 15, 2023 07:33
What to do with macros?

What to do with macros?

"Macro", you say? Or is that "recording"?

What people refer to as a "macro" is often actually a "recording".

You press qa to start recording your commands into register a, you do your thing, you stop your recording with q, and you play that recording back with @a.

Yes, what you just recorded is a macro, but macros are not necessarily recorded or even stored in registers.

@romainl
romainl / autocommands.md
Last active November 9, 2024 21:04
Dealing with autocommands

Dealing with autocommands

Anatomy of a minimal autocommand

autocmd BufNewFile,BufRead *.foo set filetype=html
  • BufNewFile,BufRead is the list of events that trigger this autocommand.
  • *.foo is the pattern we want to match against the data returned by the event.
  • set filetype=html is the command we want to execute when the pattern matches the data returned by the event.
@romainl
romainl / vanilla-linter.md
Last active July 24, 2025 19:09
Linting your code, the vanilla way

Linting your code, the vanilla way

You may want a linter plugin to lint your code in Vim but you probably don't need it. At least try the built-in way before jumping on the plugin bandwagon.

Defining makeprg

autocmd FileType <filetype> setlocal makeprg=<external command>

This autocommand tells Vim to use <external command> when invoking :make % in a <filetype> buffer. You can add as many similar lines as needed for other languages.