Переименовать файл в PHPStorm без рефакторинга

Как быстро переименовать имя файла без рефакторинга в PHPStorm? Даже после того, как я только что создал файл, PHPStorm занимает много времени для поиска в моих файлах его использования.

4 ответа

Моя техника быстрого переименования файлов заключается в том, чтобы щелкнуть по имени файла и нажать Shift-F6. Откроется диалоговое окно, и вы можете сразу ввести новое имя файла и нажать Return / Enter, чтобы завершить переименование.

Я считаю эту технику интуитивно понятной, поскольку вам не нужно перемещать мышь в диалоговое окно, вводить новое имя или щелкать что-либо для подтверждения. Пока все, что вы делаете, это переименование, которое, как вы знаете, является безопасным, вы просто набираете его и начинаете.

Мне также нравится эта функция, потому что у вас все еще есть возможность быстрого предварительного просмотра изменений до их внесения. И в тех случаях, когда вы проводите рефакторинг чего-либо, что может повлиять на остальную часть вашего приложения, вы все равно можете включить "Поиск ссылок" и / или "Поиск в комментариях и строках", чтобы получить всю энчилада. (У меня эти параметры отключены по умолчанию.)

Я согласен с вами, что щелчок правой кнопкой мыши по имени файла, прокрутка вниз до Refactor, выбор Rename и последующее ввод нового имени обременительны, особенно если включены безопасные проверки. Я считаю, что разработчики PhpStorm, кажется, понимают эти типы проблем и обычно думают о "более быстром способе" делать что-либо.

Вы не можете сделать это без рефакторинга, хотя Refactor | Rename обычно очень быстро, и вы можете отключить параметры для поиска ссылок.

По умолчанию Shift-F6. Чтобы не проводить рефакторинг, отключите флажки во всплывающем окне.

Я хотел использовать F2 для переименования файлов, как Windows по умолчанию.

Вы можете сделать ярлык для F2. Идти к:

  1. файл
  2. настройки
  3. Раскладка
  4. Искать "переименовать"
  5. Дважды щелкните "Refactor -> Rename".
  6. Нажмите "Сочетание клавиш"
  7. Нажмите F2
  8. Хорошо

РЕДАКТИРОВАТЬ

Если это не работает немедленно, перезапустите 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 не синхронизирует файлы, поэтому в пути, где расположен ваш файл, нужно щелкнуть в меню "Синхронизировать путь".

Синхронизировать путь меню

Другие вопросы по тегам