【发布时间】:2011-12-10 15:56:32
【问题描述】:
如何在 PHPStorm 中快速重命名文件名无需重构?即使在我刚刚创建了文件之后,PHPStorm 也需要很长时间来搜索我的文件以了解其使用情况。
【问题讨论】:
如何在 PHPStorm 中快速重命名文件名无需重构?即使在我刚刚创建了文件之后,PHPStorm 也需要很长时间来搜索我的文件以了解其使用情况。
【问题讨论】:
还有一个选项可用右键单击文件选择“在资源管理器中显示”,然后在 Windows 资源管理器中按 F2 重命名文件。它不会重构或影响您项目中的任何其他文件。
【讨论】:
这适用于 linux 用户。
它取决于zenity,所以首先检查它是否安装在您的系统上,
在控制台中运行:zenity --version
如果它输出类似3.18.1.1 的东西 - 那就没问题了。
创建文件idea-rename.sh,内容如下:
#!/usr/bin/env bash
FileDir="$1"
FileName="$2"
NewFileName="$(zenity --entry --title "Rename ${FileName}" --text "Please enter new name" --entry-text "${FileName}" --ok-label="Rename" 2>/dev/null)"
if [[ "${NewFileName}" != "" ]]; then
if [[ -f "${FileDir}/${FileName}" ]]; then
path="${FileDir}"
name="${NewFileName}"
if [[ "${NewFileName}" == *"/"* ]]; then
IFS='/' read -ra newDirs <<< "$NewFileName"
IFS='/' read -ra dirs <<< "$FileDir"
last=$((${#newDirs[@]} - 1))
path=""
name="${newDirs[$last]}"
unset 'newDirs[last]'
if [[ "${NewFileName}" == *"./"* ]]; then
for i in "${!newDirs[@]}"; do
dir="${newDirs[i]}"
if [[ "$dir" == ".." ]]; then
unset 'newDirs[i]'
j=$i
while [ $j -ge 0 ]; do
j=$(($j-1))
if [ $j -lt 0 ]; then
for (( k=${#dirs[@]}-1 ; k>=0 ; k-- )); do
if [[ "${dirs[k]}" ]]; then
echo 'dirs[k]'
unset 'dirs[k]'
break
fi
done
elif [[ "${newDirs[j]}" ]]; then
echo 'newDirs[j]'
unset 'newDirs[j]'
break
fi
done
elif [[ "$dir" == "." ]]; then
unset 'newDirs[i]'
fi
done
fi
for dir in "${dirs[@]}"; do
if [[ "$dir" ]]; then
path="${path}/${dir}"
if [[ ! -d "$path" ]]; then
mkdir -m 0777 "$path"
fi
fi
done
for dir in "${newDirs[@]}"; do
if [[ "$dir" ]]; then
path="${path}/${dir}"
if [[ ! -d "$path" ]]; then
mkdir -m 0777 "$path"
fi
fi
done
fi
if [[ ! -f "${FileDir}/${NewFileName}" ]]; then
mv "${FileDir}/${FileName}" "${path}/${name}"
fi
fi
fi
打开你的Settings > Tools > External Tools,点击
并填写如下表格
姓名:Rename
群:File
程序:/bin/bash
参数:/path/to/idea-rename.sh $FileDir$ $FileName$
工作目录:$ProjectFileDir$
点击Ok、Apply
之后,您可以在文件菜单中看到新项目
当你点击rename时会打开对话框
在某些情况下 phpstorm 重命名后不会同步文件,因此在文件所在的路径中需要单击文件菜单中的“同步'路径'”
【讨论】:
默认为 Shift-F6。对于不重构,请禁用弹出窗口中的复选框。
我想像 Windows 默认一样使用 F2 进行文件重命名。
您可以为 F2 创建一个快捷方式。前往:
编辑
如果不能立即生效,重启 PHPStorm。
【讨论】:
我快速重命名文件的技巧是单击文件名并按Shift-F6。将打开一个对话框,您可以立即键入文件的新名称,然后按回车键以完成重命名。
我发现这种技术很直观,因为您不必将鼠标移动到对话窗口、输入新名称或单击任何内容进行确认。只要您所做的只是一个您知道是安全的重命名,您只需输入即可。
我也喜欢此功能,因为您仍然可以选择在更改之前快速预览更改。在那些情况下,当您重构可能对应用程序的其余部分产生影响的东西时,您仍然可以启用“搜索引用”和/或“在 cmets 和字符串中搜索”以获取整个 enchilada。 (我默认禁用这些选项。)
我同意你的观点,右键单击文件名,向下滚动到 Refactor,选择 Rename,然后输入新名称很麻烦,尤其是在启用安全检查的情况下。我发现 PhpStorm 开发人员似乎了解这些类型的问题,并且通常也想到了一种“更快的方法”来做事。
【讨论】:
如果不进行重构,您将无法做到这一点,尽管Refactor | Rename 通常很快,您可以禁用选项来搜索参考。
【讨论】: