iTerm2: abrir caminhos de arquivo de texto em texto sublime com salto para número de linha

Consegui encontrar e modificar um script de wrapper para iTerm2 para adicionar suporte semelhante ao Open with default appcomportamento “, ao abrir qualquer arquivo de texto encontrado em Sublime Text.

Isso permite que você:

  • Abra arquivos de texto em Sublime Text mencionados em uma sessão de terminal com o formato: /path/to/file:lineno:colno
    • lineno – Número de linha opcional para a qual saltar ao abrir o arquivo
    • colno – Número de coluna opcional para a qual saltar ao abrir o arquivo
  • Abra URLs e outros arquivos com o aplicativo padrão para lidar com esses arquivos (assim como o comportamento padrão do iTerm2)

Usar:

  • Salve o seguinte código-fonte em um arquivo chamado iterm_open_withem algum lugar do seu shell $PATH(eu recomendo ${HOME}/bin/iterm_open_with🙂
  • Siga as instruções aqui para definir o script como uma ” + Click” ” Run Command” sob Preferences ( + , )> Profiles> Advanced> Semantic History: /Users/your_username_here/bin/iterm_open_with 5 1 2

Síntese do código fonte

#!/bin/sh
# iterm_open_with - open a URL, file from CWD, full path, or path with linenumber in default app or Sublime Text if text file
# For usage with iTerm2:
# In iTerm's Preferences > Profiles > Default > Advanced > Semantic History,
# choose "Run command..." and enter "/your/path/to/iterm_open_with 5 1 2".
# Usage: iterm_open_with $(pwd) filename [linenumber]
# $(pwd) = current working directory (either use `pwd` or $PWD)
# filename = filename to open
# lineno = line number
pwd
=$1
file
=$2

regex
='https?://([a-z0-9A-Z]+(:[a-zA-Z0-9]+)?@)?[-a-z0-9A-Z-]+(.[-a-z0-9A-Z-]+)*((:[0-9]+)?)(/[a-zA-Z0-9;:/.-_+%~?&@=#()]*)?'
perl
-e "if ( "$file"" =~ m|$regex|) { exit 0 } else { exit 1 }""
if [ $? -ne 0 ]; then
# if it's not a url