--------------------------------------------------------------------------- --- VIM hotkeys for awful.hotkeys_widget -- -- @author Yauheni Kirylau <yawghen@gmail.com> -- @copyright 2014-2015 Yauheni Kirylau -- @release @AWESOME_VERSION@ -- @module awful.hotkeys_popup.keys.vim --------------------------------------------------------------------------- local hotkeys_popup = require("awful.hotkeys_popup.widget") local vim_rule = {name="vim"} for group_name, group_data in pairs({ vim_motion= { color="#009F00", rule=vim_rule }, vim_command= { color="#aFaF00", rule=vim_rule }, vim_command_insert= { color="#cF4F40", rule=vim_rule }, vim_operator= { color="#aF6F00", rule=vim_rule }, }) do hotkeys_popup.group_rules[group_name] = group_data end local vim_keys = { vim_motion={{ modifiers = {}, keys = { ['`']="goto mark", ['0']='"hard" BOL', ['-']="prev line", w="next word", e="end word", t=". 'till", ['[']=". misc", [']']=". misc", f=". find char", [';']="repeat t/T/f/F", ["'"]=". goto mk. BOL", b="prev word", n="next word", [',']="reverse t/T/f/F", ['/']=". find", ['~']="toggle case", ["#"]='prev indent', ["$"]='EOL', ["%"]='goto match bracket', ["^"]='"soft" BOL', ["*"]='next indent', ["("]='begin sentence', [")"]='end sentence', ["_"]='"soft" BOL down', ["+"]='next line', W='next WORD', E='end WORD', T=". back 'till", ['{']="begin parag.", ['}']="end parag.", F='. "back" find char', G='EOF/goto line', H='screen top', L='screen bottom', B='prev WORD', N='prev (find)', M='screen middle', ['?']='. find(rev.)', } }}, vim_operator={{ modifiers = {}, keys = { ['=']="auto format", y="yank", d="delete", c="change", ["!"]='external filter', ['<']='unindent', ['>']='indent', } }}, vim_command={{ modifiers = {}, keys = { q=". record macro", r=". replace char", u="undo", p="paste after", g="gg: top of file, gf: open file here", z="zt: cursor to top, zb: bottom, zz: center", x="delete char", v="visual mode", m=". set mark", ['.']="repeat command", ["@"]='. play macro', ["&"]='repeat :s', Q='ex mode', Y='yank line', U='undo line', P='paste before', D='delete to EOL', J='join lines', K='help', [':']='ex cmd line', ['"']='. register spec', ["|"]='BOL/goto col', Z='quit and ZZ:save or ZQ:not', X='back-delete', V='visual lines', } }}, vim_command_insert={{ modifiers = {}, keys = { i="insert mode", o="open below", a="append", s="subst char", R='replace mode', I='insert at BOL', O='open above', A='append at EOL', S='subst line', C='change to EOL', } }}, } hotkeys_popup.add_hotkeys(vim_keys) -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80