[core] tab-width = 4 indent-with-spaces = off # cursor width in pixels cursor-width = 1 # time to blink cursor for (i.e. it will be on for cursor-blink-time-on seconds, then off for cursor-blink-time-off seconds) # set -off to 0 to disable blinking cursor-blink-time-on = 0.5 cursor-blink-time-off = 0.3 # amount of scroll "padding" (minimum number of lines below the cursor will the bottom of the screen be) scrolloff = 5 # if you do a bunch of typing, then undo, it will generally # undo the past this many seconds of editing. undo-save-time = 6 text-size = 18 border-thickness = 1 max-menu-width = 600 padding = 6 error-display-time = 10 auto-indent = on # automatically add a newline at the end of the file on save auto-add-newline = on syntax-highlighting = on line-numbers = on # if set to "on", when a file is changed by another program, it will be reloaded by ted without asking you. auto-reload = on # automatically reload config when saved auto-reload-config = on build-default-command = make # restore previously opened files when ted is launched? restore-session = on # show autocomplete menu when a trigger character (e.g. '.') is typed (LSP only) trigger-characters = on # should all identifier characters (e.g. a-z) be treated as trigger characters? identifier-trigger-characters = off # display "phantom completions"? (if there is only one completion, display it next to the cursor) phantom-completions = on # enable LSP support (for autocompletion, etc.) # you can also set `lsp = ""` but this is a quick way to disable LSP servers for all langauges lsp-enabled = yes # enable this to log all messages between ted and the LSP server # (may require restarting ted to update) # the log file is in the same folder as ted.cfg. lsp-log = off # display function signature help? (only with LSP running) # this is the thing at the bottom of ted which shows the parameters to the function you're calling signature-help-enabled = yes # display hover info when F1 key is pressed? (only with LSP running) hover-enabled = yes # if this is set to x, then hover info will be displayed without shift key after x seconds (with LSP running) hover-time = 1e10 # highlight instances of the variable under the cursor when the F2 key is pressed? (only with LSP running) highlight-enabled = yes # don't require ctrl key for highlighting highlight-auto = no # maximum editable file size. # ted will set the buffer to view-only if a file larger than this is loaded. # NOTE: ted is not really meant for absolutely massive files. # it should handle anything up to 100,000 lines just fine (maybe small hiccups in some cases for >20,000) # files up to 1,000,000 lines should be just fine in view-only mode (although they might take a bit of time to load) max-file-size = 20000000 # absolute maximum file size. # ted will produce an error if a file larger than this is loaded. max-file-size-view-only = 100000000 # whether to use vsync or not. you probably want this on. vsync = on # max framerate. vsync overrides this. # you might want to increase this if you have a >60Hz monitor and you don't care about CPU usage. framerate-cap = 60 # search depth for files to generate tags for. # if set to 0, tag generation/regeneration will do nothing tags-max-depth = 2 # regenerate tags if an identifier is not found (with Ctrl+click)? regenerate-tags-if-not-found = yes # this variable determines how ted finds the "root directory" of a project for # running build commands and because LSP servers need to know # FOR EXAMPLE: If you have the file /a/b/c/d.txt open, # ted will check each of the directories /, /a, /a/b, /a/b/c # and set the root to whichever one has one of these files, # breaking ties by order of appearance in the list below. # So if /a/b/.git and /a/Makefile and /a/b/c/Cargo.toml exist, # ted will select /a/b as the root. # if no identifying files are found, the directory containing the current file is used. root-identifiers = .ted-root, .ted-root.out, Cargo.toml, make.bat, CMakeLists.txt, Makefile, go.mod, .git # you can make your own custom background for ted using a shader. # an example is provided here. you will have access to the following variables: # t_pos - screen position of fragment (0,0) to (1,1) # t_aspect - (window_width / window_height, 1) # t_time - current time in seconds, modulo 3600 # t_save_time - time since last save, in seconds. # t_texture - a texture, made with your choice of image # if you want your shader supported no matter what, only use stuff from GLSL version 110. # on non-ancient computers, you should be able to use GLSL version 130. # bg-shader = "void main() { # vec2 p = t_pos * t_aspect; # float r = pow(sin(p.x * 100.0 + t_time * 3.0), 60.0); # float g = pow(sin(p.y * 100.0 + t_time * 6.0), 60.0); # vec4 color = vec4(r, g, 1.0 - t_save_time, 0.2); # gl_FragColor = clamp(color, 0.0, 1.0); # }" # here's an example using a texture: # bg-texture = "/path/to/my/cool/picture.jpg" (or .png, .gif, .bmp) # bg-shader = "void main() { gl_FragColor = texture2D(t_texture, t_pos) * vec4(1.0,1.0,1.0,0.2); }" [C.core] lsp = "clangd --log=error" [C++.core] lsp = "clangd --log=error" [Go.core] lsp = "gopls" [Java.core] lsp = "jdtls" # by default, jdtls doesn't give signature help lsp-configuration = `{ "java": { "signatureHelp": { "enabled": true } } }` [JavaScript.core] lsp = "typescript-language-server --stdio" [TypeScript.core] lsp = "typescript-language-server --stdio" [Python.core] lsp = "pylsp" [Rust.core] lsp = "rust-analyzer" [Tex.core] lsp = "texlab" [keyboard] # motion and selection Left = :left Shift+Left = :select-left Ctrl+Left = :left-word Ctrl+Shift+Left = :select-left-word Right = :right Shift+Right = :select-right Ctrl+Right = :right-word Ctrl+Shift+Right = :select-right-word Up = :up Shift+Up = :select-up Down = :down Shift+Down = :select-down Ctrl+Up = :up-blank-line Ctrl+Shift+Up = :select-up-blank-line Ctrl+Down = :down-blank-line Ctrl+Shift+Down = :select-down-blank-line Home = :start-of-line Shift+Home = :select-start-of-line Ctrl+Home = :start-of-file Ctrl+Shift+Home = :select-start-of-file End = :end-of-line Shift+End = :select-end-of-line Ctrl+End = :end-of-file Ctrl+Shift+End = :select-end-of-file Ctrl+a = :select-all # insertion Tab = :tab Shift+Tab = :backtab Enter = :newline # same as :newline for normal text insertion, but goes to the previous search result instead of the next one for find+replace Shift+Enter = :newline-back Keypad Enter = :newline Shift+Keypad Enter = :newline-back # toggle selection between commented/uncommented Ctrl+/ = :comment-selection # deletion Delete = :delete Shift+Delete = :delete Ctrl+Delete = :delete-word Ctrl+Shift+Delete = :delete-word Backspace = :backspace Shift+Backspace = :backspace Ctrl+Backspace = :backspace-word Ctrl+Shift+Backspace = :backspace-word # scrolling PageUp = :page-up PageDown = :page-down Shift+PageUp = :select-page-up Shift+PageDown = :select-page-down Ctrl+o = :open Ctrl+n = :new Ctrl+s = :save Ctrl+Alt+Shift+s = :save-all Ctrl+Shift+s = :save-as Ctrl+q = :quit # reload all buffers from their files. # this doesn't affect buffers with unsaved changes. Ctrl+Shift+r = :reload-all # You can do something like this: # Ctrl+Alt+t = 3 :set-language # to set the language of the current buffer to Rust, for example. This might be useful if # one file extension could be multiple different languages. # Here are the numbers corresponding to each language we have syntax highlighting for: # 0 Plain text (no syntax highlighting) # 1 C # 2 C++ # 3 Rust # 4 Python # 5 TeX # 6 Markdown # 7 HTML # 8 Config # 9 JavaScript # 10 Java # 11 Go # 12 ted.cfg # 13 TypeScript # 14 JSON # 15 XML # 16 GLSL # -1 Guess from the file extension (default) # IDE features Ctrl+Space = :autocomplete # go to previous completion Ctrl+Shift+Space = :autocomplete-back Ctrl+u = :find-usages Ctrl+z = :undo Ctrl+Shift+z = :redo Ctrl+f = :find Ctrl+Shift+f = :find-replace Ctrl+c = :copy Ctrl+x = :cut Ctrl+v = :paste Ctrl+Shift+p = :command-selector # tabs Ctrl+w = :tab-close Ctrl+PageUp = :tab-prev Ctrl+PageDown = :tab-next Ctrl+Shift+PageUp = :tab-move-left Ctrl+Shift+PageDown = :tab-move-right Alt+1 = 0 :tab-switch Alt+2 = 1 :tab-switch Alt+3 = 2 :tab-switch Alt+4 = 3 :tab-switch Alt+5 = 4 :tab-switch Alt+6 = 5 :tab-switch Alt+7 = 6 :tab-switch Alt+8 = 7 :tab-switch Alt+9 = 8 :tab-switch Alt+0 = 9 :tab-switch # (for if you have those fancy extra buttons on your mouse) X1 = :tab-prev X2 = :tab-next Ctrl+Equals = 3 :increase-text-size Ctrl+- = 3 :decrease-text-size Ctrl+Alt+Shift+v = :view-only F4 = :build Ctrl+[ = :build-prev-error Ctrl+] = :build-next-error # Ctrl+Shift+1 applies to QWERTY keyboards (and others), Ctrl+! for AZERTY (and others) Ctrl+Shift+1 = :shell Ctrl+! = :shell Ctrl+t = :generate-tags Ctrl+d = :goto-definition # alternative to ctrl+click Ctrl+' = :goto-definition-at-cursor # alternative to ctrl+shift+click Ctrl+Shift+' = :goto-declaration-at-cursor # alternative to ctrl+alt+click Ctrl+Alt+' = :goto-type-definition-at-cursor Ctrl+g = :goto-line Ctrl+\ = :split-horizontal Ctrl+Shift+\ = :split-vertical # unsplit Ctrl+j = :split-join # switch to the other side of a split Ctrl+tab = :split-switch # swap sides of a split Ctrl+Shift+tab = :split-swap Escape = :escape [colors] # below, bg is short for background and hl is short for highlight border = #a77 active-tab-hl = #a77a # this color is used for tabs which are selected, but not active (because you are on the other side of a split, perhaps) selected-tab-hl = #7777 cursor-line-bg = #fff2 cursor = #3ff # used as cursor color when you do autocomplete and there are no suggestions cursor-error = #f00 # color to highlight matching brackets with matching-bracket-hl = #fda8 selection-bg = #36aa view-only-cursor = #0d0 view-only-selection-bg = #0a05 hl = #ccc text = #fff # less prominent text color text-secondary = #fff7 # For example, in the open menu it is nice to have a visual distinction between folders and files. # This is the color used for folders. text-folder = #88f # Used for things that are neither files nor folders. text-other = #8f8 bg = #001 # The entire screen gets filled with this color when a menu (e.g. the "open" menu) is shown. # By making it transparent, we can dim everything else while the menu is open. menu-backdrop = #0004 menu-bg = #222 menu-hl = #afa2 # error box colors error-border = #f00 error-bg = #800 # warning box colors warning-border = #ff0 warning-bg = #660 # info box colors info-border = #00f info-bg = #004 # color to highlight search results with find-hl = #fff4 yes = #afa no = #faa cancel = #ffa # autocomplete autocomplete-bg = #000 autocomplete-border = #999 autocomplete-hl = #f6a3 # hover (press shift while hovering over an identifier with an LSP server running) hover-bg = #000a hover-border = #fffa hover-text = #fff hover-hl = #ffc4 # these control the text color for various kinds of completions autocomplete-variable = #bfb autocomplete-function = #fec autocomplete-type = #faf # Syntax highlighting keyword = #0c0 preprocessor = #77f string = #f77 character = #fa7 builtin = #a7f comment = #999 constant = #8ff line-numbers = #779 cursor-line-number = #ddf line-numbers-separator = #fff3 [extensions] C = .c, .h C++ = .cpp, .hpp, .C, .H, .cxx, .hxx, .cc, .hh Rust = .rs Python = .py Tex = .tex Markdown = .md GLSL = .glsl, .tesc, .tese, .vert, .frag, .geom, .comp HTML = .html, .php, .xhtml XML = .xml, .iml Config = .cfg, .toml # ted.cfg has its own syntax highlighting for multiline strings. TedCfg = ted.cfg JavaScript = .js TypeScript = .ts JSON = .json Java = .java Go = .go # You can add language-specific settings like this: # [HTML.core] # tab-width = 2 # Or path-specific settings like this: # [/path/to/special/project//colors] # keyword = #f0f # Or both! # [/path/to/special/project//Javascript.keyboard] # Ctrl+J = "function() {" :insert-text