home.social

#vimovember — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #vimovember, aggregated by home.social.

fetched live
  1. @hyde I liked your site a lot. Thinking of implementing some of the slashpages myself. I began using Neovim very recently, after decades of heavy vim use; bookmarked your #vimovember page to go through the tips

  2. @tsvenson Check the #vimovember hashtag.

    My posts are summarize here:

    lazybea.rs/vimovember

    @jasper has done it too: jasper.tandy.is/doing-vimovemb

    @celfred has posted some on the fediverse but I dont know if he wrote them down somewhere.

    @loupbrun has done some posts too...

    Maybe other #vim / #neovim users too 🤷

  3. For the last ones, if you want to check how i use named sessions, ripgrep, and other functions go visit

    lazybea.rs/vimovember/

    #vim #Vimovember

  4. 25 Block Mode 🧠

    Visual block mode is really helpful to reformat or move columns of your text.

    A useful keybinding I have is:

    keymap("v", "<leader>t", "!pandoc -f markdown -t markdown-simple_tables<CR>", opts)

    It uses pandoc to reformat correctly your table.

    #vim #pandoc #Vimovember #editors

  5. Last one, if you need to insert a filename in the current buffer, use <C-x><C-f>. You never tried it? Do it right now!

    #Vimovember

  6. 24 Shell 🧠

    I don’t use the integrated terminal(:term) in nvim. As a tmux, and Wezterm user, I prefer using them to spawn a new terminal.

    With tmux, every new project opens with two panes: one at 80% height and one at 20%. The larger pane opens directly with Telescope in the project directory.

    1/3

    #Vimovember #shell #vim

  7. 23 Quickfix 🧠

    Quickfix is probably one of the feature that many users don’t understand, or use it unintentionally. Yet it can transform how you search, debug, refactor, or navigate.

    The Quickfix window is a special buffer listing all the quickfix entries that you can open with :copen. It allows you to modify multiple files with :cfdo for example.

    It can be used as a todo list by adding manually some tasks with :caddexpr 'fix this later'.

    1/2

    #Vimovember #vim #oponsource. #terminal

  8. 22 Mappings

    # Visual

    # pasting over text normally overwrites your yank — this fixes it.
    keymap("v", "p", '"_dP', opts)

    # move visual blocks easily with J/K
    keymap("v", "J", ":m '>+1<CR>gv=gv", opts)
    keymap("v", "K", ":m '<-2<CR>gv=gv", opts)

    2/2

    #Vimovember #vim #neovim #editors

  9. Day 22: mappings

    I have many mappings, often found in someone’s configuration, and being not used.

    Some are useful though:

    # Normal

    # dont move my cursor when I join lines
    keymap("n", "J", "mzJ`z", opts)

    # removes spaces at the end of the line with confirmation
    keymap("n", "<leader>t", [[:%s/\s\+$//gce<CR>]], opts)

    # leaves the cursor in the middle of the screen when you do a next/prev search
    keymap("n", "n", "nzzzv", opts) and keymap("n", "N", "Nzzzv", opts) "

    1/2

    #Vimovember #viw

  10. Day 21 Autocmd

    I only have three autocmd to avoid some spelling:

    vim.cmd([[autocmd BufRead,BufEnter *.md syntax match H1Title /\v\d{8}T\d{6}/ contains=@NoSpell]])

    vim.cmd([[autocmd BufRead,BufEnter *.md syntax match NoURL /\vhttps?://\S+/ contains=@NoSpell]])

    vim.cmd([[autocmd BufRead,BufEnter .md syntax match NoWikiLink /\v[[.]]/ contains=@NoSpell]])

    I could probably try to use it, but autocmd can quickly mess up your files if you’re not cautious.

    #Vimovember #vim #neovim

  11. For day 18 and 19, about config and plugins i use mainly Lazy.nvim to install some.

    And my config merits a full post.

    Day 20 Replace in Files:

    On day 12, I showed how to replace in multiple files using a macro. But, you can do differently using :vimgrep and cdo / cfdo. Something like this:

    :vimgrep /old/ **/*.py
    :cfdo %s/old/new/g

    Don’t forget to preview first with :copen before doing big changes to your files.

    #Vimovember #vim #neovim #editors #shell #linux #bsd #opensource

  12. Day 17 Fold :

    The folds I find myself using are:

    zf{motion}
    zf3{ " to close 3 paragraphs before my cursor

    Or, with marks:

    zf'a " fold from the current line to the mark

    #Vimovember #vim #neovim

  13. Day 16 Tabs ⚙

    Tabs aren’t something I use. I know you can use gt, and Gt to go to the next/previous tab. I use actually that with #Tridactyl, the plugin for Firefox/Librewolf, that brings #Vim keybindings in your browser.

    #Vimovember #vim #neovim

  14. Day 15 Buffers ⚙️

    When I have a couple of buffers opened, I used to do :b [tab] to switch between them. Now, with Neovim and Telescope, I setup this:

    vim.keymap.set('n', '<leader>b', builtin.buffers, {})

    That opens a new floating window with all the buffers, and a preview.

    What I like to use to go to the latest buffer I used is <C-o>, and if you hit it again it will keep going to previous buffers, even if the files are not opened.

    #Vimovember #vim #neovim #editors

  15. Day 14 splits

    One useful thing is to be able to split them equally. Hit <Ctl-w> =, and that’s it.

    The other useful thing I opening a split with a specific height / width:

    :30vnew " Vertical split, 30 columns wide
    :10split " Horizontal split, 10 lines tall

    Great for preview panes or narrow sidebars.

    Also, one great thing is open file under the cursor in a new split

    Horizontal: Ctrl-w f
    Vertical: Ctrl-w F

    #Vimovember #vim #neovim #editors #opensource #FOSS #shell #linux #bsd

  16. #Vimovember Day 14: Split (shameless self promotion edition)

    #Vim 's incredibly low-friction window splitting is something I miss immediately and intensely when using other, inferior editors, but I found the built in mechanism for resizing splits a bit unergonomic, so I wrote a plugin to fix it: github.com/sedm0784/vim-resize

    It overlays the existing keybindings transparently, so there's really no downside to installing it — the cool kids all already did and they say you should too!

  17. #vimovember day 14 - Split
    I first used Vim with few terminals open. As @loupbrun said, it's a paradigmatic change after years of using Atom or VSCodium: manage as many windows as necessary. Before @monterosato blamed me (why not using just one Vim session?), I already used split for displaying another document in the same Vim session, but now I use vsplit a lot. My common setup is like this screenshot (two columns, the second on the right is divided on two vertical parts): main writing/coding space on the left, and two other documents on the right. Simple, clear, useful (and, I believe, beautiful).

    So I do:

    nvim my-main-doc
    :vsplit my-second-doc
    :split my-third-doc

  18. Day 13 Marks ⚙️:

    Marks have some great features, but I found myself not using them often.

    We saw on Day 7, that you can substitute on a visual selection, you can actually
    do the same with marks in Ex commands:

    :'a,'b s/foo/bar/

    That will substitute foo by bar between marks `a` and `b`.

    Check the link in the thread for more tips about marks

    #Vimovember #vim #neovim #editors #opensuse #FOSS #terminals

  19. #Vimovember Day 13: Marks

    Vim's uppercase marks aren't limited to being used on the fly to mark places you can jump to in the buffers you're currently working on. They can also be used as long-lived global bookmarks.

    These days, whatever I'm working on, if at any time I type   `T   , then #Vim will instantly teleport me to a list I keep in a TODO.txt file, because a few years ago I dropped an uppercase mark at the top with    mT   .

  20. @normalmode #vimovember day 12 macros: honestly, nothing to add to this. Macros rule, and you feel like an actual text editing god when it works (especially first try).