16

我以前用过Netbeans。如何在 Mac 上的 Sublime Text 2 中进行一些重构(更改变量名称、使用代码生成方法等)?我现在正在做的是“选择一个单词的下一个实例”,但这只是因为我只使用一个文件

4

6 回答 6

7

我为 JavaScript 重构编写了这个插件 https://github.com/sa/sublime-text-refactor

我想还有更多支持 RoR。

于 2013-12-30T07:09:11.503 回答
7

对我有用的是“查找全部”选项(Ctrl+F 和 Alt+Enter)。

这样您就可以编辑文本,并且所有匹配项都将同时被编辑。

于 2016-04-11T11:36:33.090 回答
5

这里发生的事情是我只是通过 grepping 和 find/replace 进行了重构。我现在在 Vim 上,当我需要重构时,替换/grepping 仍然是我的方法。我想这是 IDE 提供的文本编辑器不提供的功能之一。

于 2014-03-23T14:48:37.963 回答
2

除了 ctrl+click,您还可以使用 ctrl+D。为我工作。

于 2015-04-01T09:26:42.833 回答
0

我所做的是使用 ctrl+click 选择多个变量,一旦您键入,所有选定的字符串都会更改。唯一的区别是您需要手动选择它们。但话又说回来——一旦你选择了第一个,所有匹配的变量都会突出显示

于 2015-03-10T19:34:15.343 回答
0

sublime-text-refactor只要您需要重构变量,该插件就可以工作。如果您需要重构纯字符串,则它不起作用。例如,如果您需要通过插件替换'components'文件路径将无济于事,因为它希望重命名变量(当我尝试重构时控制台会显示:无法定位变量)。'file/*/components''sections'components

我的回答与崇高文本无关,但是当我找到合适的解决方案时,我被引导到这个线程,因此它可能会在相同情况下对人们有所帮助。Sublime text 不一定是重构的解决方案。

在 NodeJs 中,我为确保跨文件重构所做的工作是创建一个 gulp 任务来替换值并重写文件:

var gulpReplace = require('gulp-replace');

gulp.task('refactor', function(){
  gulp.src(['app/**/*.js'], { base: './' })
  .pipe(gulpReplace(/components/g, 'sections'))
  .pipe(gulp.dest('./'));
});

$gulp refactor

这样做的目的是,在app目录下的所有 js 文件中,我将 string 替换为'components'string 'sections'。在我的情况下,我需要简单的字符串替换,它不是变量重命名,所以需要非常简单,这种方法非常有效。将此方法适应您的情况并在重构之前备份您的代码,因为它相当于通过 grep 查找/替换,没有事先检查,请确保您在做什么。

我建议在完成重构后删除 gulp 任务,因为它可能非常危险!警告

于 2015-12-08T14:54:21.240 回答