Advertisement
voyeg3r

neovim new text-objects in lua

Jan 1st, 2022
1,183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.26 KB | None | 0 0
  1. -- other interesting text objects
  2. -- reference: https://www.reddit.com/r/vim/comments/adsqnx/comment/edjw792
  3. -- TODO: detect if we are over the first char and jump to the right
  4. local chars = { "_", "-", ".", ":", ",", ";", "<bar>", "/", "<bslash>", "*", "+", "%", "#", "`" }
  5. for k, v in ipairs(chars) do
  6.     map("x", "i" .. v, ":<C-u>norm! T" .. v .. "vt" .. v .. "<CR>")
  7.     map("x", "a" .. v, ":<C-u>norm! F" .. v .. "vf" .. v .. "<CR>")
  8.     map("o", "a" .. v, ":normal! va" .. v .. "<CR>")
  9.     map("o", "i" .. v, ":normal! vi" .. v .. "<CR>")
  10. end
  11.  
  12. -- charactere under the cursor
  13. --local char = vim.fn.strcharpart(vim.fn.strpart(vim.fn.getline("."), vim.fn.col(".") - 1), 0, 1)
  14. --print(char)
  15.  
  16. for k, v in ipairs(chars) do
  17.     map("o", "an" .. v, ":norm! f" .. v .. "vf" .. v .. "<CR>")
  18.     map("o", "in" .. v, ":norm! f" .. v .. "lvt" .. v .. "<CR>")
  19.     map("o", "al" .. v, ":norm! F" .. v .. "vF" .. v .. "<CR>")
  20.     map("o", "il" .. v, ":norm! F" .. v .. "hvT" .. v .. "<CR>")
  21.     map("x", "an" .. v, ":<c-u>norm! f" .. v .. "vf" .. v .. "<CR>")
  22.     map("x", "in" .. v, ":<c-u>norm! f" .. v .. "lvt" .. v .. "<CR>")
  23.     map("x", "al" .. v, ":<c-u>norm! F" .. v .. "vF" .. v .. "<CR>")
  24.     map("x", "il" .. v, ":<c-u>norm! F" .. v .. "hvT" .. v .. "<CR>")
  25. end
  26.  
  27.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement