{"id":13419963,"url":"https://github.com/supercollider/scvim","last_synced_at":"2025-09-06T05:43:08.059Z","repository":{"id":40380235,"uuid":"56926209","full_name":"supercollider/scvim","owner":"supercollider","description":"Vim plugin for SuperCollider ","archived":false,"fork":false,"pushed_at":"2024-04-25T23:25:28.000Z","size":266,"stargazers_count":112,"open_issues_count":14,"forks_count":28,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-07-31T22:52:48.132Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/supercollider.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-23T15:26:57.000Z","updated_at":"2024-07-28T00:45:54.000Z","dependencies_parsed_at":"2024-10-26T16:53:36.585Z","dependency_job_id":"22c463ff-089b-4ff9-9cf3-77195b002860","html_url":"https://github.com/supercollider/scvim","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercollider%2Fscvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercollider%2Fscvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercollider%2Fscvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercollider%2Fscvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/supercollider","download_url":"https://codeload.github.com/supercollider/scvim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239914933,"owners_count":19717760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-07-30T22:01:23.517Z","updated_at":"2025-02-20T20:42:24.130Z","avatar_url":"https://github.com/supercollider.png","language":"Vim Script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"SCVim (\u003e 3.5)\n==============\n\nA vim plugin for supercollider (tested on Linux and Mac OSX).\n\nThis is based of the original [scvim by Alex Norman](https://www.x37v.info/projects/scvim/).\n\nFeatures\n--------\n\n* Syntax Highlighting\n* A faked REPL via the terminal\n* Code Navigation (jump to definitions) via a global tags file \"~/.sctags\"\n* Auto-Completion of known words via tag completion\n* Launch the SuperCollider QT Help System\n* `tmux` and `screen` support\n\nRequirements\n------------\n\n* ruby\n* supercollider\n\nInstallation\n------------\n\n### `scvim` plugin installation\n\nIt is highly recommended to use either Vim 8+'s native `packages` or a plugin\nmanager to install `scvim`.\n\nThe most common package manager addons are:\n\n* [pathogen](https://github.com/tpope/vim-pathogen)\n* [vundle](https://github.com/VundleVim/Vundle.vim)\n* [vim-plug](https://github.com/junegunn/vim-plug)\n* [vim-addon-manager](https://github.com/MarcWeber/vim-addon-manager)\n\nTo find help about vim's native `packages`, in vim, type `:help packages`\n\nThe plugin folder is expected to be found in `~/.vim/pack/*/*/scvim`\nor somewhere below `~/.vim`, at a maximum depth of two folders and with the\nword `scvim` in it (which should in theory cover all use-cases for the above\nplugin managers).\n\n#### Using Vim's native package management\n\nTo automatically enable scvim when you use vim.\nAssuming that your vim `pack` package directory is called *my*\n\nExecute:\n```\nmkdir -p ~/.vim/pack/my/start/\ngit clone https://github.com/supercollider/scvim.git ~/.vim/pack/my/start/scvim\n```\n\nIf you would like to only enable scvim when you first start editing a\nSuperCollider file.\nAssuming that your vim `pack` package directory is called *my*\n\nExecute:\n```\nmkdir -p ~/.vim/pack/my/opt/\ngit clone https://github.com/supercollider/scvim.git ~/.vim/pack/my/opt/scvim\n```\n\nThen, add the following to your `~/.vimrc`\n\n```\nau BufEnter,BufWinEnter,BufNewFile,BufRead *.sc,*.scd set filetype=supercollider\nau Filetype supercollider packadd scvim\n```\n\n### `SCVim.sc`\n\nIf your SuperCollider version was not build with vim support (i.e. the class\n`SCVim` does not exist yet), you'll need to either symlink `sc/SCVim.sc`\nsomewhere where SuperCollider can find it (typically that would be in\n`Platform.userExtensionDir` from within SuperCollider), or add (the absolute\npath to) `scvim/sc` to `includePaths:` in your `sclang_conf.yaml`.\n\nConfiguration\n-------------\n\n### ENV variables:\n\nPath to the tags file\n`export SCVIM_TAGFILE=/your/path` this defaults to `~/.sctags`\n\n### Configurable VIM variables:\n\nThe following variables are available for configuration in your `.vimrc` file:\n\n| Variable | Description | Default |\n| -------- | ----------- | ------- |\n| `g:sclangTerm`       | Command to open a terminal window                                | `\"open -a Terminal.app\"` on macOS,\u003cbr /\u003e`\"x-terminal-emulator -e $SHELL -ic\"` on Linux |\n| `g:sclangPipeApp`    | Absolute path to **start_pipe** script                           | `\"~/.vim/bundle/scvim/bin/start_pipe\"` |\n| `g:sclangDispatcher` | Absolute path to **sc_dispatcher** script                        | `\"~/.vim/bundle/scvim/bin/sc_dispatcher\"` |\n| `g:scFlash`          | Highlighting of evaluated code                                   | `0` |\n| `g:scSplitDirection` | Default window orientation when using a terminal multiplexer     | `\"h\"` |\n| `g:scSplitSize`      | Post window size (% of screen) when using a terminal multiplexer | `50` |\n| `g:scTerminalBuffer` | If set to `\"on\"` use vim's `:term` to launch `g:sclangTerm`      | `\"off\"` |\n\nExample `.vimrc` line for gnome-terminal users:\n\n    let g:sclangTerm = \"gnome-terminal -x $SHELL -ic\"\n\nTo enable highlighting of evaluated code:\n\n    let g:scFlash = 1\n\nUsage\n-----\nTo start open a file with the right extension :e foo.sc(d)\nEnter `:SClangStart` and a terminal should open with a running sclang session.\n\nSee the commands reference for general usage.\n\n_ctags support_:\n\nrun `:SCtags` from vim or `SCVim.generateTagsFile()` from sclang\n\nThis gives you a couple of things:\n\n* You can jump to any known class or method\n* You get tags completion with ctrl-x ctrl-] (use the vim supertab plugin if this is too\n  bothersome to type)\n\n### Commands:\n\n* `:SClangStart` launch sclang\n* `:SClangRecompile` recompile\n* `:SClangKill` what it says\n\n### Key commands:\n\nin normal mode:\n\n* `\u003cleader\u003esk` recompiles the sc library\n* `K` on a word opens the corresponding helpfile inside the supercollider help\n* `^]` jumps to a tagfile (this works for classes only so far but will be\n  extended)\n\nin normal/insert mode:\n\n* `F5` to execute a block of code scvim will attempt to find the outermost bracket\n* `F6` to execute the current line of code\n* `F12` is a hard stop\n\nTerminal Multiplexer Options\n----------------------------\n\nSupported Terminal Multiplexers are `tmux` and `screen`. To use with scvim, open\nthe multiplexer before opening vim.\nFor example:\n\n`$\u003e tmux new -s sc`\n`$\u003e vim mySCfile.scd`\n\nDefault settings for window orienation and window size can be set in your `.vimrc`.\n\nWindow orientation options are `\"h\"` for horizontal and `\"v\"` for vertical (double\nquotes are required).\n\nThe window size option for tmux is the percentage of the screen you want the post\nwindow to take up. For example, to have your main window taking up 70% of the left\nof the screen and your post window the remaining 30% at the right:\n\n    let g:scSplitDirection = \"h\"\n    let g:scSplitSize = 30`\n\n### Changing Multiplexor Options on SClangStart:\n\nOptions for the multiplexer of your choice can be set on the fly when you use the\nSClangStart command:\n\n`:call SClangStart(\"h\", 30)`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupercollider%2Fscvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupercollider%2Fscvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupercollider%2Fscvim/lists"}