본문으로 바로가기
728x90
반응형


개요

개발을 할 때 종종 IDE가 없었다면 "어떻게 개발을 헀을까?"라는 생각이 들 정도로 IDE는 필수적인 요소가 되었네요.  저는 Python으로 코드를 자주 작성하기 때문에 Jetbrains의 Pycharm을 사용하고 있습니다. 그것도 커뮤니티 버전을 꾸준히 사용하고 있죠.

그런데 커뮤니티 버전을 쓰다 보면 프로 버전에 비해 제공되는 기능들이 제한적이라는 것을 깨닫습니다. 이러한 차이를 해결하고자 종종 Plugin을 많이 탐색하게 됩니다. Plugin을 탐색하다 보면 "굳이 프로버전 사용해 되나"라는 생각이 들 정도로 잘 만들어진 Plugin들이 있습니다.

그래서 이번 포스팅은 Pycharm Community 버전을 사용하면 알게 됐던 단축키와 플러그인을 기록해보고자 합니다. 환경은 Mac OS Ventura 13.2의 Pycharm Communit 2022.02을 사용했습니다.

참고로 gif를 녹화는 데 사용한 tool은 Giphy Capture이며, Pycharm에서 단축키를 표출하는 데 사용한 플러그인은 Presentation Assistant입니다.

 

Pycharm ShortCut, Join Lines

먼저 pycharm에서 특정한 plugin을 설치하지 않고 사용할 수 있는 단축키입니다. 쉼표로 구분된 라인을 한 줄로 만들 때 유용하게 썼습니다. 아래는 실행 전후로 적용된 결과입니다.

# Before
z,
z,
z

# After
z, z, z

저는 함수의 paramter가 많을 때 써먹으니 편하더군요.



Pycharm ShortCut, Comma Section Mode

Pycharm의 Comma Section Mode는 Multi Row를 복사한 뒤 붙여 넣기 할 때 많이 사용합니다. 주로 사용했던 상황은 미리 지정된 변수를 함수의 인자로 넘길 때 유용하게 사용했습니다.




Pycharm Plugin: Realiger

이 Plugin은 위에서 기술한 Join Lines를 다시 되돌릴 방법이 없을까 하다가 찾게 된 Plugin인 입니다. 링크는 여기를 참고하시면 됩니다. 

Split After Delimeter

Realiger의 기능 중 Split Delimeter라는 옵션이 Join Lines를 적용했던 라인을 다시 되돌리는 역할을 합니다.

사실 Ctrl+Z를 사용해서 되돌리기를 해도 되지만 Delimeter를 지정해서 구분자를 지정할 수 있고 Join Lines를 적용하지 않은 라인을 컨트롤할 수 있는 상황에서 유용했습니다.

 

Split at delimeter and remove it

추가로 이 기능은 구분자를 없애는 기능입니다.

 

Pycharm Plugin: Smart Align

저는 23년 1월 회고에서 "코드 수평 정렬"에 대해서 조사를 하고 있었는데요. Code Formatter로 해결하진 못했고 이 Plugin으로 기대했던 결과를 얻을 수 있었습니다. 이 Plugin은 '='나 특정 assignment(, +=, -=, *=, /=)를 기준으로 코드를 맞춰주는 기능을 수행합니다.

Plugin의 링크는 여기를 참고하시면 됩니다.



사실 이 기능은 코드 상에서 정렬하는 경우에는 거의 사용하지 않고 있습니다. 코드에서 '='은 자주 사용하는 기호이기 때문에  '='를 기준으로 정리하는 것은 오히려 더 불편한 경우도 존재하더군요. 그래서 코드보다는 어떤 설정 파일들 예를 들어 . ini 파일같은 곳에 주로 사용하곤 합니다.

아래 예시는 pytest를 설정할 때 사용하는 .ini 파일을 '='를 기준으로 정리한 예시입니다. 

# 변경 전
[pytest]
addopts = -v --reuse-db --no-migrations
DJANGO_SETTINGS_MODULE = src.config.settings
pythonpath = . src


# 변경 후 
[pytest]
addopts                = -v --reuse-db --no-migrations
DJANGO_SETTINGS_MODULE = src.config.settings
pythonpath             = . src

 

Pycharm, Empty Line Delete

추가로 pycharm에서 비어있는 행을 지우고 남아있는 내용을 위쪽으로 병합하는 방법입니다. 이는 단축키나 Plugin을 찾진 못했습니다. 방법은 replace with 기능중 정규표현식 필터를 이용해 수행할 수 있습니다. 저는 이 방법을 주로 메서드명이나 클래스명을 문서로 옮겨야 할 떄 자주 사용하곤 합니다. 

위 방법을 actions나 preset으로 단축키로 등록해두고 사용할 수 있도록 조사해봤지만 다른 방법을 찾진 못했습니다.

 

맺음말

IDE를 탐구하는 건 생산성 올리는 방법을 하나씩 알아가는 것 같아 늘 신기하고 재밌는 영역 같습니다. 코드 포맷팅이나 정렬 같은 경우 호불호가 많이 갈리기 때문에 딱히 이걸 써야 한다고 강력히 주장할 수는 없지만 하나씩 알아두면 예기치 못한 순간에 도움이 정말 많이 됨을 언급하고 싶네요.

조금 더 탐구해 보고 정리한 뒤 다음에도 유용하다고 생각된 Plugin이나 단축키를 알게 되면 기록을 남겨보도록 하겠습니다.




728x90
반응형