Editor Configuration

Cecli allows you to configure your preferred text editor for use with the /editor command. The editor must be capable of running in “blocking mode”, meaning the command line will wait until you close the editor before proceeding.

Using --editor

You can specify the text editor with the --editor switch or using editor: in cecli’s YAML config file.

Environment variables

Cecli checks the following environment variables in order to determine which editor to use:

  1. CECLI_EDITOR
  2. VISUAL
  3. EDITOR

Default behavior

If no editor is configured, cecli will use these platform-specific defaults:

  • Windows: notepad
  • macOS: vim
  • Linux/Unix: vi

Using a custom editor

You can set your preferred editor in your shell’s configuration file (e.g., .bashrc, .zshrc):

export CECLI_EDITOR=vim
  1. vim

    export CECLI_EDITOR=vim
    
  2. Emacs

    export CECLI_EDITOR=emacs
    
  3. VSCode

    export CECLI_EDITOR="code --wait"
    
  4. Sublime Text

    export CECLI_EDITOR="subl --wait"
    
  5. BBEdit

    export CECLI_EDITOR="bbedit --wait"
    
  1. vim

    export CECLI_EDITOR=vim
    
  2. Emacs

    export CECLI_EDITOR=emacs
    
  3. nano

    export CECLI_EDITOR=nano
    
  4. VSCode

    export CECLI_EDITOR="code --wait"
    
  5. Sublime Text

    export CECLI_EDITOR="subl --wait"
    
  1. Notepad

    set CECLI_EDITOR=notepad
    
  2. VSCode

    set CECLI_EDITOR="code --wait"
    
  3. Notepad++

    set CECLI_EDITOR="notepad++ -multiInst -notabbar -nosession -noPlugin -waitForClose"
    

Editor command arguments

Some editors require specific command-line arguments to operate in blocking mode. The --wait flag (or equivalent) is commonly used to make the editor block until the file is closed.

Troubleshooting

If you encounter issues with your editor not blocking (returning to the prompt immediately), verify that:

  1. Your editor supports blocking mode
  2. You’ve included the necessary command-line arguments for blocking mode
  3. The editor command is properly quoted if it contains spaces or special characters, e.g.:
    export CECLI_EDITOR="code --wait"