在PHPStorm中重命名文件而不进行重构

28

如何在PHPStorm中快速重命名一个文件名而不进行重构?即使我刚刚创建了这个文件,PHPStorm 在搜索它的使用时也需要很长时间。

5个回答

29

我快速重命名文件的技巧是单击文件名并按下Shift-F6。一个对话框会弹出,您可以立即输入新的文件名并按回车/输入键以完成重命名。

我认为这种技巧很直观,因为您不需要将鼠标移动到对话框窗口,输入新名称或单击任何内容来确认。只要您要做的是安全的重命名,您只需键入它并完成操作。

我也喜欢这个功能,因为你仍然可以在进行更改之前快速预览。而在那些可能影响应用程序其余部分的重构情况下,您仍然可以启用“搜索引用”和/或“搜索注释和字符串”来获取完整信息。(我默认禁用这些选项)

我同意您的观点,右键单击文件名,向下滚动至Refactor,选择Rename,然后输入新名称是繁琐的,特别是如果启用了安全检查。我发现 PhpStorm 的开发人员似乎理解这些问题,并且通常想到了更快的方法来处理事情。


您还可以使用助记符(Alt + <下划线字母>)快速启用/禁用复选框。 - Nikolay Matveev

11

虽然重构|重命名通常很快,而且您可以禁用搜索引用选项,但没有重构是不可能的。


有时候我创建一个新文件,然后想要修改它的名称。尽管该文件刚被创建,但重构工具报告了很多引用它的地方?! - Handsome Nerd
1
如果您在注释中搜索并且文件名是某个常见单词,那么可以找到错误的引用。因此,在重命名对话框中禁用两个复选框即可。 - CrazyCoder

6
默认快捷键是Shift-F6。如果不需要重构,请在弹出窗口中禁用复选框。
我想像Windows默认设置一样使用F2进行文件重命名。
您可以为F2设置一个快捷方式。请按照以下步骤操作:
1. 点击“File” 2. 点击“Settings” 3. 点击“Keymap” 4. 搜索“rename” 5. 双击“Refactor -> Rename” 6. 点击“Keyboard Shortcut” 7. 按下F2 8. 点击“Ok” 编辑 如果无法立即生效,请重新启动PHPStorm。

1
+1 这就是我来这里的原因。谷歌引领了我,而我并没有失望。F2 对我来说是预期的快捷方式。谁听说过 Shift+f6 用于重命名操作? - brett
奇怪,不确定为什么这个快捷方式需要重新启动,而其他的则不需要。 - George Dimitriadis
我做了所有的事情,但忘记重新启动phpstorm了.. :( - fudu

2

还有一种选项,右键单击文件,选择“在资源管理器中显示”,然后在Windows资源管理器中通过F2重命名文件。它不会重构或影响您项目中的任何其他文件。


1
这是最快的方法,当你有信心只想重命名且你的重命名不会破坏代码时。 - Handsome Nerd

0

这将适用于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

打开你的 设置 > 工具 > 外部工具,点击 添加按钮
并按照以下表格填写

Adding tool

名称:重命名
组:文件
程序:/bin/bash
参数:/path/to/idea-rename.sh $FileDir$ $FileName$
工作目录:$ProjectFileDir$

点击确定应用
之后您可以在文件菜单中看到新的项目

Menu

当您点击 重命名 时,将会打开对话框

Rename dialog

在某些情况下重命名后,phpstorm不会同步文件,因此在您的文件所在路径中,需要在文件菜单中单击“同步'path'”。

Synchronize path menu


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接