{"id":17200616,"url":"https://github.com/perlence/gpvi","last_synced_at":"2026-02-02T22:43:50.732Z","repository":{"id":76985515,"uuid":"35701629","full_name":"Perlence/gpvi","owner":"Perlence","description":"A set of Vi-like hotkeys for Guitar Pro 5","archived":false,"fork":false,"pushed_at":"2020-10-29T06:26:52.000Z","size":50,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-11T00:36:22.848Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"AutoHotkey","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Perlence.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-05-15T23:24:45.000Z","updated_at":"2020-10-29T06:26:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"1b02b629-7c72-4868-8807-a33895372ea2","html_url":"https://github.com/Perlence/gpvi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Perlence/gpvi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Fgpvi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Fgpvi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Fgpvi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Fgpvi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Perlence","download_url":"https://codeload.github.com/Perlence/gpvi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Fgpvi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29022350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T22:20:39.141Z","status":"ssl_error","status_checked_at":"2026-02-02T22:20:37.621Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T02:09:15.174Z","updated_at":"2026-02-02T22:43:50.714Z","avatar_url":"https://github.com/Perlence.png","language":"AutoHotkey","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Guitar Pro Vi\r\n\r\nGuitar Pro vi is a set of Vi-like hotkeys for Guitar Pro 5. It was tested to work with Guitar Pro 5.1 and Guitar Pro 5.2.\r\n\r\n\r\n## Insert mode\r\n\r\nIn Insert mode all hotkeys of Normal and Visual modes are disabled. You can interact with Guitar Pro 5 as you did it before. To quit Insert mode, press \u003ckbd\u003eEsc\u003c/kbd\u003e or \u003ckbd\u003eCtrl-C\u003c/kbd\u003e.\r\n\r\n\r\n## Normal mode\r\n\r\nLegend:\r\n\r\n- *N* - a number entered before the command\r\n- *{motion}* - a cursor movement command\r\n- *Nmove* - the text that is moved over with a *{motion}*\r\n\r\n| Key | Action |\r\n| --- | ------ |\r\n| \u003ckbd\u003eCtrl-6\u003c/kbd\u003e | switch to alternate Guitar Pro 5 window |\r\n| \u003ckbd\u003eCtrl-A\u003c/kbd\u003e | transpose note under cursor *N* semitones up |\r\n| \u003ckbd\u003eCtrl-C\u003c/kbd\u003e | interrupt current command |\r\n| \u003ckbd\u003eCtrl-R\u003c/kbd\u003e | redo changes which were undone with \u003ckbd\u003eu\u003c/kbd\u003e *N* times |\r\n| \u003ckbd\u003eCtrl-X\u003c/kbd\u003e | transpose note under cursor *N* semitones down |\r\n| \u003ckbd\u003eBackspace\u003c/kbd\u003e | same as \u003ckbd\u003eh\u003c/kbd\u003e |\r\n| \u003ckbd\u003eEnter\u003c/kbd\u003e | same as \u003ckbd\u003ej\u003c/kbd\u003e |\r\n| \u003ckbd\u003eSpace\u003c/kbd\u003e | same as \u003ckbd\u003el\u003c/kbd\u003e |\r\n| \u003ckbd\u003e0\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e1\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e2\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e3\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e4\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e5\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e6\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e7\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e8\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e9\u003c/kbd\u003e | prepend to command to give a count |\r\n| \u003ckbd\u003e:\u003c/kbd\u003e | start entering an Ex command |\r\n| \u003ckbd\u003eA\u003c/kbd\u003e | insert a beat in the end of the bar and enter Insert mode |\r\n| \u003ckbd\u003eC\u003c/kbd\u003e | clear the beats under the cursor until the end of the bar and *N-1* more bar and enter Insert mode |\r\n| \u003ckbd\u003eD\u003c/kbd\u003e | delete the beats under the cursor until the end of the bar and *N-1* more bar |\r\n| \u003ckbd\u003eG\u003c/kbd\u003e | cursor to bar *N*, default last bar |\r\n| \u003ckbd\u003eI\u003c/kbd\u003e | insert a beat in the beginning of the bar and enter Insert mode |\r\n| \u003ckbd\u003eM\u003c/kbd\u003e | list section markers |\r\n| \u003ckbd\u003eO\u003c/kbd\u003e | begin a new bar after the cursor and enter Insert mode |\r\n| \u003ckbd\u003eP\u003c/kbd\u003e | put beats/bars before the cursor *N* times |\r\n| \u003ckbd\u003eS\u003c/kbd\u003e | clear *N* bars and enter Insert mode |\r\n| \u003ckbd\u003eV\u003c/kbd\u003e | start bar-wise Visual mode |\r\n| \u003ckbd\u003eX\u003c/kbd\u003e | delete *N* notes before the cursor |\r\n| \u003ckbd\u003eZQ\u003c/kbd\u003e | exit current file always |\r\n| \u003ckbd\u003eZZ\u003c/kbd\u003e | save current file and exit |\r\n| \u003ckbd\u003e[\u003c/kbd\u003e\u003ckbd\u003e[\u003c/kbd\u003e, \u003ckbd\u003e[\u003c/kbd\u003e\u003ckbd\u003e]\u003c/kbd\u003e | cursor *N* sections backward |\r\n| \u003ckbd\u003e]\u003c/kbd\u003e\u003ckbd\u003e]\u003c/kbd\u003e, \u003ckbd\u003e]\u003c/kbd\u003e\u003ckbd\u003e[\u003c/kbd\u003e | cursor *N* sections forward |\r\n| \u003ckbd\u003ea\u003c/kbd\u003e | insert a beat after cursor and enter Insert mode |\r\n| \u003ckbd\u003eb\u003c/kbd\u003e | cursor forward to beginning of the bar *N* |\r\n| \u003ckbd\u003ec\u003c/kbd\u003e\u003ckbd\u003ec\u003c/kbd\u003e | clear *N* bars and enter Insert mode |\r\n| \u003ckbd\u003ec\u003c/kbd\u003e\u003ckbd\u003e{motion}\u003c/kbd\u003e | delete *Nmove* beats/bars and enter Insert mode |\r\n| \u003ckbd\u003ed\u003c/kbd\u003e\u003ckbd\u003ed\u003c/kbd\u003e | delete *N* bars |\r\n| \u003ckbd\u003ed\u003c/kbd\u003e\u003ckbd\u003e{motion}\u003c/kbd\u003e | delete *Nmove* beats/bars |\r\n| \u003ckbd\u003ee\u003c/kbd\u003e | cursor forward to end of the bar *N* |\r\n| \u003ckbd\u003eg\u003c/kbd\u003e\u003ckbd\u003eg\u003c/kbd\u003e | cursor to bar *N*, default first bar |\r\n| \u003ckbd\u003eg\u003c/kbd\u003e\u003ckbd\u003eo\u003c/kbd\u003e | cursor to beat *N*, starting from the first beat of the first bar |\r\n| \u003ckbd\u003eg\u003c/kbd\u003e\u003ckbd\u003eP\u003c/kbd\u003e | put beats/bars before the cursor *N* times and move cursor right one beat |\r\n| \u003ckbd\u003eh\u003c/kbd\u003e | cursor *N* beats to the left |\r\n| \u003ckbd\u003ei\u003c/kbd\u003e | insert a beat before cursor and enter Insert mode |\r\n| \u003ckbd\u003ej\u003c/kbd\u003e | cursor *N* lines downward |\r\n| \u003ckbd\u003ek\u003c/kbd\u003e | cursor *N* lines upward |\r\n| \u003ckbd\u003el\u003c/kbd\u003e | cursor *N* beats to the right |\r\n| \u003ckbd\u003em\u003c/kbd\u003e | insert section marker |\r\n| \u003ckbd\u003eo\u003c/kbd\u003e | begin a new bar before the cursor and enter Insert mode |\r\n| \u003ckbd\u003er\u003c/kbd\u003e | replace note with *N* |\r\n| \u003ckbd\u003es\u003c/kbd\u003e | replace *N* beats in the current bar with a rest |\r\n| \u003ckbd\u003eu\u003c/kbd\u003e | undo changes *N* times |\r\n| \u003ckbd\u003ev\u003c/kbd\u003e | start beat-wise Visual mode |\r\n| \u003ckbd\u003ew\u003c/kbd\u003e | cursor *N* bars forward |\r\n| \u003ckbd\u003ex\u003c/kbd\u003e | delete *N* notes under and after the cursor |\r\n| \u003ckbd\u003ey\u003c/kbd\u003e\u003ckbd\u003ey\u003c/kbd\u003e, \u003ckbd\u003eY\u003c/kbd\u003e | yank *N* bars |\r\n| \u003ckbd\u003ey\u003c/kbd\u003e\u003ckbd\u003e{motion}\u003c/kbd\u003e | yank *Nmove* beats/bars |\r\n| \u003ckbd\u003e\u0026#124;\u003c/kbd\u003e | cursor to *N* beat of the current bar |\r\n| \u003ckbd\u003e←\u003c/kbd\u003e | same as \u003ckbd\u003eh\u003c/kbd\u003e |\r\n| \u003ckbd\u003e↑\u003c/kbd\u003e | same as \u003ckbd\u003ek\u003c/kbd\u003e |\r\n| \u003ckbd\u003e↓\u003c/kbd\u003e | same as \u003ckbd\u003ej\u003c/kbd\u003e |\r\n| \u003ckbd\u003e→\u003c/kbd\u003e | same as \u003ckbd\u003el\u003c/kbd\u003e |\r\n| \u003ckbd\u003eLeftMouse\u003c/kbd\u003e | move cursor to the mouse click position |\r\n| \u003ckbd\u003eMiddleMouse\u003c/kbd\u003e | same as \u003ckbd\u003eg\u003c/kbd\u003e\u003ckbd\u003eP\u003c/kbd\u003e at the mouse click position |\r\n\r\n\r\n## Visual mode\r\n\r\n| Key | Action |\r\n| --- | ------ |\r\n| \u003ckbd\u003eCtrl-C\u003c/kbd\u003e, \u003ckbd\u003eEsc\u003c/kbd\u003e | stop Visual mode |\r\n| \u003ckbd\u003eC\u003c/kbd\u003e | delete the highlighted bars |\r\n| \u003ckbd\u003eD\u003c/kbd\u003e | delete the highlighted bars |\r\n| \u003ckbd\u003eR\u003c/kbd\u003e | delete the highlighted bars |\r\n| \u003ckbd\u003eS\u003c/kbd\u003e | delete the highlighted bars |\r\n| \u003ckbd\u003eV\u003c/kbd\u003e | make Visual mode bar-wise or stop Visual mode |\r\n| \u003ckbd\u003eY\u003c/kbd\u003e | yank the highlighted bars |\r\n| \u003ckbd\u003eX\u003c/kbd\u003e | delete the highlighted bars |\r\n| \u003ckbd\u003ec\u003c/kbd\u003e | delete highlighted area and start insert |\r\n| \u003ckbd\u003ed\u003c/kbd\u003e | delete the highlighted area |\r\n| \u003ckbd\u003es\u003c/kbd\u003e | delete the highlighted area |\r\n| \u003ckbd\u003ev\u003c/kbd\u003e | make Visual mode beat-wise or stop Visual mode |\r\n| \u003ckbd\u003ey\u003c/kbd\u003e | yank the highlighted area |\r\n| \u003ckbd\u003ex\u003c/kbd\u003e | delete the highlighted area |\r\n\r\n\r\n## Ex commands\r\n\r\nEx commands are maximally simplified to one letter commands. The command will execute instantaneously as the letter is pressed, no need to press \u003ckbd\u003eEnter\u003c/kbd\u003e afterwards.\r\n\r\n| Command | Action |\r\n| ------- | ------ |\r\n| \u003ckbd\u003e:\u003c/kbd\u003e\u003ckbd\u003en\u003c/kbd\u003e | new file |\r\n| \u003ckbd\u003e:\u003c/kbd\u003e\u003ckbd\u003ew\u003c/kbd\u003e | save file |\r\n| \u003ckbd\u003e:\u003c/kbd\u003e\u003ckbd\u003eo\u003c/kbd\u003e | open file |\r\n| \u003ckbd\u003e:\u003c/kbd\u003e\u003ckbd\u003eq\u003c/kbd\u003e | quit Guitar Pro 5 |\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlence%2Fgpvi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fperlence%2Fgpvi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlence%2Fgpvi/lists"}