Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

Значение по умолчанию Shift-F6. Для не рефакторинга отключите флажки во всплывающем окне.

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

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

  • Файл
  • Настройки
  • Раскладка
  • Поиск "переименовать"
  • Doubleclick "Refactor → Rename"
  • Нажмите "Ярлык клавиатуры"
  • Нажмите F2
  • Ok

ИЗМЕНИТЬ

Если это не сработает немедленно, перезапустите PHPStorm.

Ответ 4

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

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