28

如何在不重构PHPStorm 的情况下快速重命名文件名?即使在我刚刚创建文件之后,PHPStorm 也需要很长时间来搜索我的文件以了解其使用情况。

4

5 回答 5

29

我快速重命名文件的技巧是单击文件名并按Shift-F6。将打开一个对话框,您可以立即键入文件的新名称,然后按回车键以完成重命名。

我发现这种技术很直观,因为您不必将鼠标移动到对话窗口、键入新名称或单击任何内容进行确认。只要您所做的只是一个您知道是安全的重命名,您只需键入它即可。

我也喜欢这个功能,因为您仍然可以选择在更改之前快速预览更改。在那些情况下,当您重构可能对应用程序的其余部分产生影响的东西时,您仍然可以启用“搜索引用”和/或“搜索评论和字符串”来获取整个 enchilada。(我默认禁用这些选项。)

我同意你的观点,右键单击文件名,向下滚动到 Refactor,选择 Rename,然后输入新名称很麻烦,尤其是在启用安全检查的情况下。我发现 PhpStorm 开发人员似乎理解这些类型的问题,并且通常也想到了一种“更快的方法”来做事。

于 2011-10-24T22:40:05.380 回答
11

但是,如果不进行重构,您将无法做到Refactor| Rename通常非常快,您可以禁用搜索参考的选项。

于 2011-10-19T07:26:32.790 回答
6

默认为Shift-F6。对于不重构,请禁用弹出窗口中的复选框。

我想使用F2像 Windows 默认一样重命名文件。

您可以为F2创建快捷方式。去:

  1. 文件
  2. 设置
  3. 键盘映射
  4. 搜索“重命名”
  5. 双击“重构->重命名”
  6. 点击“键盘快捷键”
  7. 按 F2
  8. 好的

编辑

如果它不能立即工作,请重新启动 PHPStorm。

于 2016-04-27T13:34:28.767 回答
0

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

于 2020-03-13T08:47:45.130 回答
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

打开您的Settings> Tools> External Tools,点击 并填写如下表格添加按钮

添加工具

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

单击OkApply
之后您可以在文件菜单中看到新项目

菜单

当您单击时rename将打开对话框

重命名对话框

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

同步路径菜单

于 2017-03-26T03:55:52.570 回答