php - 设置快捷方式以替换 VIM 中轻松选择的字符串

标签 php vim internationalization keyboard-shortcuts

我有很多 php/html 文件,其中包含许多应该使用 gettext 国际化的字符串。 因此,我必须遍历每个文件,找到“消息”字符串并将每个字符串替换为

<?= _("<my string>") ?>

我使用 vim,并且想设置一个快捷方式(映射)以便在插入模式下轻松完成此操作(例如使用 CtrlR)。

你知道如何实现这一目标吗?

最佳答案

我会使用 Tim Pope 的精彩 surround插件来完成此任务。

将以下内容添加到您的 ~/.vim/after/ftplugin/php.vim文件:

let b:surround_{char2nr('_')} = "<?= _(\"\r\") ?>"

现在您可以通过视觉模式选择一些然后环绕。例如vitS_ 如果您处于插入模式,您可以通过 <c-s>_ 包围文本您的光标将被插入到双引号之间。

如果您想删除周围的<?= _("<text here>") ?>,作为奖励只留下<text here>您可以将以下内容添加到您的 ~/.vim/after/ftplugin/php.vim还有:

nmap <buffer> <silent> ds_ ds<dt(%df?[(xds"

Tim Pope 有很多很棒的插件,我强烈建议您看一下其中的一些。

更多帮助请参见:

:h surround
:h surround-customizing
:h after-directory
:h curly-braces-names
:h b:var

关于php - 设置快捷方式以替换 VIM 中轻松选择的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11798286/

相关文章:

javascript - PHP IF 语句有 2 个条件

php - 使用 PHP 将定义的变量插入 MySQL 数据库/表,没有数据(显然)被写入数据库?

php - 使用 PDO 从 MySQL 数据库获取信息

c - vim 的高效非交互使用

Vim:反向视觉模式透视

php - 数组和 foreach 循环更有效地处理输入变量

shell - 如何在 vim 中将当前缓冲区或行作为 stdin 发送到 system()?

java - 我想在运行时更改 SWT 应用程序的语言。怎么做?

VBA:Str(myString) 与 Str(CDbl(myString)) 的作用相同吗?

ruby-on-rails - Rails i18N 翻译 yml 文件中的感叹号是什么意思?