Search code examples
vimneovim

How default neovim filetype=sshconfig for files in .ssh/config.d/?


I like to separate my ssh config files and include config files in a subdirectory .ssh/config.d/* as explained here. When opening .ssh/config in neovim I get syntax highlighting with filetype filetype=sshconfig automatically but not for included config files in .ssh/config.d/.

What can I do to achieve automatic file type recognition (filetype=sshconfig) within that directory?


Solution

  • Auto-detection of filetype for Neovim is in /usr/share/nvim/runtime/lua/vim/filetype.lua : sshconfig filetype is not detected for file in ~/.ssh/config.d/ directory.

    You can create an auto-command with Neovim API to set your filetype :

    vim.api.nvim_create_autocmd({'BufRead', 'BufNewFile'}, {
      desc = 'Set filetype for SSH config directory',
      pattern = '*/.ssh/config.d/*',
      command = 'set filetype=sshconfig'
    })