Usando expand-region
Eu recomendaria instalar o expand-regionpacote (disponível também no Melpa). Seria útil para editar situações mencionadas no seu exemplo e muito mais.
expand-regioné inteligente. Com base no modo principal, ele tentará descobrir o que você está tentando selecionar. Não sei de qual idioma você tem o snippet de exemplo, então usarei o seu snippet de código de exemplo e o modificarei levemente para Python (remove;). Portanto, minha explicação abaixo é com o trecho de código abaixo em um python-modebuffer.
ref = open('specific-file-name')
Se o ponto estiver próximo a uma aspas simples
Os retângulos verticais pretos abaixo indicam a aparência do cursor.
# point on left of left quote, the cursor is hiding the quote under it
ref = open(▮specific-file-name')
# point on left of right parenthesis, the cursor is hiding the parenthesis under it
ref = open('specific-file-name'▮
Em qualquer um dos casos, quando o fizer M-x er/expand-region, 'specific-file-name'será selecionado e você poderá pressionar DEL(ou retroceder) para excluir a seleção.
Se você delete-selection-modeativou (eu gosto de ativá-lo pessoalmente), você pode começar a digitar depois de fazer a seleção e isso substituirá a seleção.
Obviamente, se você usa er/expand-regionmuito, vincula-o a uma ligação de chave curta. Eu gosto de ligá-lo C-\. Então, com o ponto ao lado de uma única citação: C-\fnamevai me darref = open(fname);

Se point estiver em algum lugar dentro das aspas
Usando expand-region, o ponto não precisa estar próximo das aspas. Mas, neste caso, você precisará de apenas mais alguns (geralmente um ou dois mais) pressionamentos de tecla.
Digamos que a posição do cursor esteja como abaixo agora:
# cursor shown below is hiding the i character under it
ref = open('specif▮c-file-name')
Usando a mesma ligação que usei acima:
- A primeira vez que eu clicar
C-\selecionará specific.
Agora só preciso clicar \para expandir a seleção ( expand-regionrecurso). Isso irá selecionar specific-file-name.
Se você tinha ligado er/expand-regionpara C-=, bater =novamente fará a expansão incremental. Leia sua documentação sobre como vincular chaves para expansão / contração incremental da seleção.
- Bater
\mais uma vez irá selecionar 'specific-file-name'.
- Agora você continua pressionando
DELpara excluir a seleção e digitar fname. Se delete-selection-modeestiver ativado, você pode pular o DELtraço.
Em resumo, com delete-selection-modehabilitado, os cursos chaves parecer: C-\\\fname.

Usando change-inner
Eu também me deparei com o change-innerpacote dos magnars do expand-regionautor (que usa como back-end) para fazer exatamente o que o Vim faz (e também alterar o exterior ).expand-regionci
Do pacote README:
change-innerdá a você o cicomando do vim , construindo expand-region. É mais facilmente explicado pelo exemplo:
function test() {
return "semantic kill";
}
Com ponto após a palavra semântica
change-inner "mataria o conteúdo da string
change-outer "mataria a string inteira
change-inner {mataria a declaração de retorno
change-outer {mataria o bloco inteiro
ref = open(|'specific-file-name');,C-M-kvai darref = open(|);. As citações também são sexps equilibrados .