맥북에서 기존에 사용하던 iterm2가 너무 느린 거 같아서 새로운 터미널이 있나 하고 찾아보니깐 WezTerm이 있어서 이걸 설치하였습니다

사전에 확인해야 할 환경 사양

  • 기본 macOS 터미널 $TERM 값: xterm
  • WezTerm 설치 및 실행 이후 $TERM 값: xterm-256color
  • .zshrc 파일 상태: .oh-my-zsh와 같은 다른 셸 설정 프레임워크를 전혀 참조하지 않음(즉, 관련 환경 정보를 다 삭제으로써 !v시 vi 이전파일이 보이는 답답한 현상이 제거됨. 야후~)

 

1단계: WezTerm 설치와 기본 설정

먼저 WezTerm을 설치하고, 기본적인 시각 설정을 마침

  • 폰트: FiraCode Nerd Font를 사용해서 코딩할 때 가독성을 확 높임.
  • 글자 크기: 12.0
  • 색상: 배경은 #000000 (블랙), 글자는 #00FF00 (밝은 초록색)
  • 투명도: window_background_opacity = 0.8로 설정해서 배경이 살짝 비치도록...
  • 커서: BlinkingBlock 스타일로 설정해서 눈에 잘 띄게...
  • 업데이트 및 종료 경고: check_for_updates = false와 window_close_confirmation = 'NeverPrompt'로 불필요한 알림은 모두 껐습니다.
  • 초기 창 크기: initial_rows = 200, initial_cols = 130으로...

여기서 확인 포인트: WezTerm을 재시작했을 때 폰트, 색상, 투명도, 커서가 잘 적용되는지, 그리고 종료 시 경고 메시지가 뜨지 않는지 확인 필요


2단계: $TERM 변수 완벽 제어

터미널 환경에서 가장 중요한 $TERM 변수! 이게 wezterm으로 제대로 설정되어야 모든 기능이 완벽하게 작동한다능....

저의 wezterm.lua 파일 내용입니다

-- ~/.wezterm.lua

local wezterm = require 'wezterm'

return {
	font = wezterm.font("FiraCode Nerd Font", {weight="Regular"}),
	font_size = 12.0,

	colors = {
		background = '#000000', -- 검정색 배경
		foreground = '#00EE00', -- 밝은 초록색
		
		ansi = {
			'#000000', '#CC0000', '#4E9A06', '#C4A000', '#3465A4', '#75507B', '#06989A', '#D3D7CF',
		},
		brights = {
			'#555753', '#EF2929', '#8AE234', '#FCE94F', '#729FCF', '#AD7FA8', '#34E2E2', '#EEEEEC',
		},
	},

	window_background_opacity = 0.8,

	cursor_blink_rate = 800,
	default_cursor_style = "BlinkingBlock",

	window_close_confirmation = 'NeverPrompt', 
	check_for_updates = false,

	initial_rows = 200,
	initial_cols = 130,

	-- WezTerm이 셸에게 TERM=wezterm을 전달하도록 설정
	set_environment_variables = {
		TERM = 'wezterm',
	},

	-- Zsh 셸을 실행할 때 TERM을 강제하는 설정
	-- 이 설정은 WezTerm이 셸을 시작하는 초기 단계에서 환경 변수를 주입하는 더 강력한 방법입니다.
	default_prog = { "/bin/zsh", "-l", "-c", "export TERM=wezterm; exec zsh" },

	-- 선택 사항: Command Palette를 통해 특정 셸을 시작하는 메뉴 추가
	launch_menu = {
		{
			label = 'Launch Zsh with Forced TERM',
			args = { 'zsh', '-l', '-c', 'export TERM=wezterm; exec zsh' },
		},
	},
}
 

여기서 확인 포인트: WezTerm을 반드시 macOS 기본 터미널이 아닌, WezTerm 앱 자체를 독립적으로 실행해야 합니다. (Spotlight 검색, Dock, 응용 프로그램 폴더 등을 통해서요)
WezTerm 실행 후 echo $TERM을 입력했을 때 wezterm이 반드시 나와야 합니다

 

3단계: Vim 투명도 및 셸 기능 완벽 호환

$TERM이 wezterm으로 설정되었는데도 vim 투명도가 깨지거나 셸 기능(백슬래시, clear, 화살표 키)이 이상하게 작동하는 문제가 발생함. 이건 WezTerm에 맞는 terminfo 데이터가 시스템에 없어서 발생하는 현상

  1. wezterm.terminfo 파일 다운로드:
    curl -LO https://github.com/wez/wezterm/raw/main/termwiz/data/wezterm.terminfo
    
  2. terminfo 파일 설치:
    tic -x wezterm.terminfo
    
  3. 임시 파일 삭제:
    rm wezterm.terminfo
    

그리고 vim에서 투명도를 완벽하게 유지하기 위해 .vimrc 파일에 다음과 같은 설정을 추가
이 설정은 vim이 터미널의 투명한 배경을 덮어쓰지 않도록 합니다.

" ~/.vimrc

" 터미널 트루 컬러 활성화
set termguicolors

" Vim의 배경을 투명하게 설정하여 터미널의 투명도를 따르도록 함
" (colorscheme 설정 아래에 위치하는 것이 중요)
highlight Normal guibg=NONE
highlight LineNr guibg=NONE
highlight NonText guibg=NONE
highlight SpecialKey guibg=NONE
highlight VertSplit guibg=NONE
highlight SignColumn guibg=NONE

 

여기서 확인 포인트: WezTerm과 vim을 재시작했을 때 vim 내에서 배경 투명도가 잘 유지되는지,
그리고 셸에서 백슬래시, clear 명령어, 화살표 키(이전에 실행했던 명령어들)가 정상적인지 확인 필요

Posted by 테리
:

cherry-pick은 commit 단위로 원하는 브랜치에서 가져오는 방식입니다

단, 해당 commit의 파일 목록에 파일이 하나만 있을 경우입니다(만약, n개 파일이 전부 적용할 경우에도 가능하겠네요)

상황 적용 방법 git 용어
commit 단위에서 모든 파일을 그대로 반영하고 싶을 때 cherry-pick cherry-pick
commit 단위에 포함된 일부 파일만 선택적으로 반영하고 싶을 때 cherry-pick으론 안됨
비교 후 수동 반영
공식 용어가 없다
manual patching,
file-level checkout,
partial merge 등

 

이클립스 기준으로 기록합니다

단계 주제 진행 방식
1 프로젝트가 반영할
fix 또는 feature 브랜치 등인지 확인
변경이 필요하면 checkout
2 대상 브랜치의 히스토리 확인  git repositories 뷰 => branchs > local => 대상 브랜치에 우클릭 => show in > hisotry 선택
3 반영할 commit의 목록 확인 1 git history 뷰에서 commit 목록 확인 선택
2 git history 뷰의 아래 창에 반영할 파일 확인(1개인지 n개인지)
   단, n개의 파일 전체를 반영할 필요가 없는 경우는 cherry-pick이 아닌 비교 후 수동 반영 방식으로 진행해야만 한다
4 cherry-pick 진행 1 git history 뷰에서 반영할 commit에 우클릭 => cherry-pick 클릭
2 도출된 cherry-pick commit 창의 내용을 확인 후 cherry-pick 버튼 클릭
* 충돌이 발생하지 않으면 자동으로 현재 브랜치에 반영이 됨
5 push 진행 방법 1
git staging 뷰에서 push => 이것은 이클립스 2021-03 이상 버전부터 해당 사항임(전 그 이하 버전이라서 push 버튼은 없고, 다만 브랜치 명 뒤에 윗쪽 화살표는 보이는데, 어쩌라는 건지...)
방법 2
git repositories 뷰에 remotes > origin > 브랜치에 우클릭 후 push to upstream 메뉴인데, 이거 또한 버전이 낮아서 다음의 방식으로 진행해야 한다
이클립스 하위 호환 방법 + git repositories 뷰에 remotes > origin > 원격 url에 .git 중 위쪽 화살표가 표시된 영역에 우클릭 후 push 메뉴 클릭
(git repositories 뷰에 branches > remote tracking > origin/브랜치는 지양한다. 자세한 내용은 차후에...)

저는 방법 2번을 선택하였고, 이후
도출된 push results: 프로젝트 - origin 창에 내용을 확인 후 close 버튼 클릭
방법 3
프로젝트에 우클릭 후 team > push to upstream 메뉴 클릭

 

 

 

 

 

Posted by 테리
:

프로젝트에서 lib/ 디렉토리 내부 파일들이 Git에서 추적되지 않도록 설정하면서,

로컬 파일은 유지하고 원격 저장소에서는 삭제하는 방법이 있다.

 

1. lib/.gitignore 설정

lib/ 디렉토리 내 모든 파일을 Git에서 무시하려면, .gitignore 파일에 아래 내용을 추가한다:

*
!.gitignore

이 설정은 lib/ 디렉토리 내 모든 파일을 무시하고, lib/.gitignore 파일만 추적 대상으로 포함시킨다.

 

2. lib/.gitignore 파일 다시 Git에 추가

추가한 .gitignore 파일을 Git에 강제로 추가한다. 이 과정은 .gitignore 파일이 삭제되지 않도록 하기 위한 것이다. 아래 명령어를 입력한다:

git add -f lib/.gitignore
git commit -m "Re-add lib/.gitignore to keep lib directory"
git push origin develop

 

3. lib/ 디렉토리 내 파일 추적 중지

lib/ 디렉토리 내 모든 파일을 Git에서 추적하지 않도록 하기 위해 git rm -r --cached 명령어를 사용한다:

git rm -r --cached lib/
git commit -m "Stop tracking files in lib/ directory"
git push origin develop

 

4. 결과 확인

git ls-files -- lib/ 명령어를 실행하여 lib/ 디렉토리 내 파일들이 Git에 의해 추적되지 않는지 확인한다. 출력 결과가 아무것도 없으면 설정이 제대로 적용된 것이다.

 

이 방식으로 lib/ 디렉토리 내부 파일들에 대한 Git 추적을 중지하고, 원격 저장소에서만 삭제할 수 있다.

Posted by 테리
:

sts 버전 기준

 

sts의 css를 변경하므로 백업은 필요겠죠!

C:\DEV\tools\sts\spring-tool-suite-3.9.11.RELEASE-e4.13.0-win32-x86_64\sts-bundle\sts-3.9.11.RELEASE\plugins\org.eclipse.ui.themes_1.2.700.v20190826-0816 디렉토리를 백업하고..

 

C:\DEV\tools\sts\spring-tool-suite-3.9.11.RELEASE-e4.13.0-win32-x86_64\sts-bundle\sts-3.9.11.RELEASE\plugins\org.eclipse.ui.themes_1.2.700.v20190826-0816\css 디렉토리의

수정 파일 내용
e4_basestyle.css 하단에 다음의 값을 추가

.MPart Tree {
  font-size: 8;
  font: Consolas;
}
e4-dark.css 하단에 다음의 값을 추가

.MPart Tree {
  font-size: 8;
  font: Consolas;
}

 

참고 사이트: https://stackoverflow.com/questions/47731327/change-project-explorer-tree-view-font-size-in-eclipse-oxygen

Posted by 테리
:

DBeaver가 범용적으로 사용하다보니

workspace를 변경을 해야 하는데, 초기 시작 화면에서 선택을 할 수가 없어서 검색을 해 봤습니다

그래서, 이전(윈도우 10)에 사용하던 DBeaver의 기본적인 workspace가 C:\\Users\\테리\\AppData\\Roaming\\DBeaverData 폴더이더군요

F:는 이전의 window 10의 드라이브에요

이 DBeaverData를 복사를 하고, 저만의 디렉토리로 붙여넣기를 합니다

 

그런데, 이 DBeaverData 폴더가 workspace가 아니라 이 안에 workspace와 이전에 사용하던 DBeaver의 환경 설정이 존재하더군요

 

저기에 위치한 workspace6가 DBeaver의 workspace 영역입니다

이제, DBeaver를 띄운 후 workspace를 바꾸어줍니다.

파일 > 작업공간 전환 > 기타

 

 

이렇게 저만의 디렉토리로 작업공간을 수정하고, Launch 버튼을 클릭하면 이전의 작업 공간이랑 환경 설정으로 복원이 됩니다

Posted by 테리
:

로컬의 A 파일을 수정 중 (아직 커밋을 할 순 없다)

원격의 A 파일이 수정 됨

이때, A 파일을 merge하기 위해서 로컬에서 작업 중인 많은 소스들을 stash에 담아야 하는데...

merge하고자 하는 파일만 stash 후 merge 진행 방안

 

로컬의 특정 파일만 stash로 진행

git stash push -m "A.java stash" -- .\src\package\A.java

-m "message" -> stash 내용을 구분하도록 메시지 추가

-- 파일명 -> 특정 파일만 stash

git stash list

 

remote의 최신 변경 사항을 가져오고

git fetch origin

 

stash한  파일을 remote 버전으로 덮어쓰고

git checkout origin/develop -- .\src\package\A.java

 

원격의 변경된 내용을 확인하고 (출력된 정보가 없으면 변경 사항이 없는 거)

git diff .\src\package\A.java

 

stash 파일로 병합 진행을 해야 하는데, pop과 apply의 옵션으로 나누어지고

pop stash 파일이 삭제가 되고
충돌이 발생할 경우 직접 해결해야 하며
apply stash 상태를 유지하고

 

그래서, 안전하게

git stash apply

를 선택했는데, 젠장... 충돌!

 

충돌 해결 방안은 3가지 중 직접 해결하는 방법으로 선택(이 아닌 필수일 듯)

- vs code에서 해당 파일의 충돌 부분이 표시(<<< HEAD, ====, >>> stash)가 되니 원하는 코드로 수정 후 저장

- cli에서 원격 버전으로 덮어쓰기인데, stash 내용을 무시하는 방법  (어휴.. 알아보지도 말자)

- cli에서 stash 변경 내용 유지인데, 로컬 변경 사항을 무시하는 방법 (어휴.. 알아보지도 말자x2)

 

vs code를 통해서 충돌 해결을 하면, 이 파일은 자동으로 staged changes 영역으로 이동을 하게 되어

아직, 커밋 단계가 아니라서 changes 영역을 내리고자

git restore --source=HEAD --staged .\src\package\A.java

 

Posted by 테리
:

ecilpse에서 excel 파일을 열고자 external에서 

worksheet와 workspace가 있는데,

어떤 걸 선택해야하는지 몰라서 확인해 본 결과

workspace는 excel 2013부터 중단된 기능이라 하는데..

자꾸 잊어버려서 기록함

 

https://answers.microsoft.com/en-us/msoffice/forum/all/worksheet-vs-workbook-vs-workspace-vs-sheet/04d5bade-40d0-4786-940e-4535a929b3d5

Posted by 테리
:

현재의 커서가 tab 2칸에 위치해 있을 때, enter 키를 누르면(한번 이상) 이전의 들여쓰기 위치가 유지가 안되는 현상

기본 설정값일 경우의 커서 위치 기본 설정값을 false로 바꾼 후의 커서 위치

vscode의 설정값 중에 "editor.trimAutoWhitespace"은 기본값이 true로 되어 있는데,

새로운 라인이 생성될 때마다 이전 라인 끝에 존재하던 공백을 자동 제거를 하는 설정값이였다

 

이 설정을  false로 변경했더니, 이전의 들여쓰기 위치가 유지가 된다

vim 에디터 모드를 사용하기에 이것 저거 다 설정을 해 보았으나, 결국에는 vscode 설정 중 기본값이 원인이 된 사례였다

코드 포매터인 prettier를 설치하였으나, 결국 이것도 결국 삭제함

"editor.trimAutoWhitespace": false

 

'개발 > vs code' 카테고리의 다른 글

줄 바꿈 문자 설정  (0) 2025.01.08
작업 공간 단위로 프로젝트 설정  (0) 2024.12.24
maven 빌드시 pom.xml이 수정 모드가 되는 원인  (0) 2024.12.21
maven update  (0) 2024.12.21
여러 버전의 java 환경 설정  (0) 2024.12.21
Posted by 테리
:

이클립스를 띄웠을 때 위와 같이 뭔가를 진행을 합니다

일찍 끝나면 상관하지 않으나, 30초, 1분 이상이 지났는데도 여전히 프로그래스바가 보인다면 살짝 답답할 것입니다

그래서, Preferences와 프로젝트의 Properties에 몇개만 비활성화를 진행합니다

1 Preferences

1.1 Validation > Suspend all validators 항목을 `체크`를 합니다

2 Properties

2.1 Builders > Maven Project Builder 항목을 제외한 나머지는 모두 `체크 해지`를 합니다

웹 프로젝트에 한해서 설정을 진행함

 

이클립스를 재실행하면 확실히 효과가 눈으로 보입니다

Posted by 테리
:

기존에 

git fetch origin branch

를 사용하였으나, 결국 pull 동작이 필요하기에 정신 건강을 위해서 

     git pull origin branch
충돌이 없는 경우 충돌이 발생한 경우
       git pull --rebase origin branch
     git commit -m "message"
     git push origin branch
  충돌이 발생한 경우
  원인:
1 git pull 시 원격 레파지토리의 내용을 로컬에 반영하지 못한 경우
1.1 원격 레파지토리의 변경 파일이 stated changes 항목에 없고, changes에만 있어도 발생
1.2 이 경우에도 로컬에 수정된 내용으로 다른 파일인 commit&push에 영향을 받는다
1.3 이로 인하여 병합시 로컬 변경 사항으로 원격의 변경 사항과 충돌이 발생

2 병합 중단(Aborting)으로 현재 작업 상태는 병합이 완료되지 않은 상태로 남는다

3 병합이 완료되지 않은 상태에 comit을 진행하면, 병합 관련 충돌 문제로 인하여 오류가 발생한다
  해결 방안:
1 현재 변경 내용 확인
1.1 git status
1.1.1 충돌인 파일이 unstaged changes인지 staged changes인지 확인
1.1.2 unstaged changes 상태이면 로컬에서 수정된 내용을 먼저 처리

2 로컬 변경 사항 백업 (변경 사항 stash)
2.1 git stash -u
2.1.1  모든 변경 사항들을 stash로 저장하여 병합이 깨끗한 상태로 진행
2.1.2 -u 옵션은untracked 파일도 stash에 포함한다

3 pull 재시도
3.1 git pull origin develop
3.1.1 병합 충돌없이 원격 브랜치와 병합이 이루어 진다

4 stash 적용
4.1 git stash apply
4.1.1 stash에 저장된 변경 사항을 다시 불러오고, 필요하면 병합된 변경 사항과 비교하여 수정한다
       git add <conflicted-file>
     git rebase --continue
  리베이스는 커밋 히스토리를 변경하므로, 강제 푸시가 필요
       git push origin branch --force-with-lease

 

'개발 > Git' 카테고리의 다른 글

lib/ 파일 Git 추적 정지  (0) 2025.03.14
특정 파일만 remote의 변경 사항을 로컬에 merge  (0) 2025.02.03
commit & push 이후 오류 발생시 rollback 방법  (0) 2025.01.08
git bash 사용법  (0) 2024.12.24
GitHub 토큰 발급 방  (0) 2022.10.25
Posted by 테리
: