{"id":38801781,"url":"https://github.com/hiramekun/dotfiles","last_synced_at":"2026-01-17T12:47:23.566Z","repository":{"id":106251868,"uuid":"156001489","full_name":"hiramekun/dotfiles","owner":"hiramekun","description":"Get a pleasant development environment for macOS.","archived":false,"fork":false,"pushed_at":"2025-09-10T13:44:43.000Z","size":259,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-31T11:38:04.289Z","etag":null,"topics":["dotfiles","tmux","vim","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hiramekun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-11-03T16:25:42.000Z","updated_at":"2025-09-10T13:44:47.000Z","dependencies_parsed_at":"2024-03-02T12:30:50.236Z","dependency_job_id":"8d427b25-aac9-4047-bd7b-d82ab4652712","html_url":"https://github.com/hiramekun/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hiramekun/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiramekun%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiramekun%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiramekun%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiramekun%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hiramekun","download_url":"https://codeload.github.com/hiramekun/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiramekun%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T11:50:55.898Z","status":"ssl_error","status_checked_at":"2026-01-17T11:50:55.569Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","tmux","vim","zsh"],"created_at":"2026-01-17T12:47:23.476Z","updated_at":"2026-01-17T12:47:23.547Z","avatar_url":"https://github.com/hiramekun.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## dotfiles\n![image](https://github.com/hiramekun/dotfiles/assets/20180425/e869714e-6180-46a0-ba8c-3e8106309f78)\n\n\nInspired by this repository.   \n[creasty/dotfiles](https://github.com/creasty/dotfiles)\n\n**For macOS, Apple Silicon only**.\nFirst, get Xcode build tools.  \nThen follow below.\n\n ```\n $ git clone https://github.com/hiramekun/dotfiles.git\n $ cd dotfiles\n $ sh up\n ``` \n \n  - zsh\n - vim, nvim (with nvim-cmp, LSP, and Telescope)\n  - karabiner settings\n  - tmux\n  - install apps and packages by homebrew\n  - asdf for version management (Node.js, Python, Ruby, etc.)\n\n## Neovim Extension System\n\nThis dotfiles configuration provides a comprehensive Neovim development environment with modern plugins and language support.\n\n### Plugin Management with dein.vim\n\nPlugins are managed using [dein.vim](https://github.com/Shougo/dein.vim), a dark-powered Vim/Neovim plugin manager. The plugin configuration is defined in `nvim/init.vim` and automatically installed during provisioning.\n\n**Manual plugin installation:**\n```vim\n:call dein#install()\n```\n\n**Plugin location:** `~/dotfiles/vim/dein/repos/github.com/`\n\n### Core Extensions\n\n#### Language Server Protocol (LSP) Support\n- **nvim-lspconfig**: Provides native LSP client configuration\n- **Supported languages**: Python (pyright), TypeScript/JavaScript (ts_ls), Go (gopls), Lua (lua_ls), Rust (rust-analyzer), Terraform (terraformls), HTML, CSS, JSON, YAML, Shell\n- **Enhanced Go LSP**: Configured with staticcheck, gofumpt, and unused parameter analysis\n- **Auto-setup**: LSP servers start automatically when opening supported files\n- **Key mappings**:\n  - `gd` - Go to definition\n  - `gr` - Go to references  \n  - `K` - Hover documentation\n  - `\u003cleader\u003ern` - Rename symbol\n  - `\u003cleader\u003eca` - Code actions\n  - `\u003cleader\u003ef` - Format buffer\n  - `\u003cleader\u003ed` - Show diagnostics\n  - `[d` / `]d` - Navigate diagnostics\n\n#### Intelligent Completion\n- **nvim-cmp**: Modern completion engine with LSP integration\n- **cmp-cmdline**: Command-line completion\n- **friendly-snippets**: Collection of common code snippets\n- **Sources**: LSP, buffer text, file paths, code snippets\n- **Enhanced keybindings**: Tab/Shift-Tab for navigation, improved snippet jumping\n- **Usage**: Type to trigger completion, `\u003cCR\u003e` to confirm\n\n#### File Navigation \u0026 Search\n- **telescope.nvim**: Fuzzy finder and picker with preview\n- **telescope-fzf-native**: Native FZF sorter for better performance\n- **Key mappings**:\n  - `\u003cleader\u003eff` - Find files\n  - `\u003cleader\u003efg` - Live grep search\n  - `\u003cleader\u003efb` - List open buffers\n  - `\u003cleader\u003efh` - Search help tags\n  - `\u003cleader\u003efr` - LSP references\n  - `\u003cleader\u003efs` - Document symbols\n\n#### File Explorer \u0026 Navigation\n- **nvim-tree.lua**: Modern file explorer with Git integration\n- **nvim-web-devicons**: File type icons\n- **vim-tmux-navigator**: Seamless navigation between Vim and tmux panes\n- **Key mappings**:\n  - `\u003cleader\u003ee` - Toggle file explorer\n\n#### Syntax Highlighting \u0026 Parsing\n- **nvim-treesitter**: Advanced syntax highlighting using Tree-sitter parsers\n- **nvim-treesitter-textobjects**: Smart text objects for functions and classes\n- **Languages**: Python, JavaScript, TypeScript, Lua, Go, Ruby, YAML, JSON, HTML, CSS, Bash, Rust, Terraform, Dockerfile, Helm\n- **Features**: Better syntax highlighting, smart indentation, intelligent text objects\n\n#### Code Formatting \u0026 Linting\n- **conform.nvim**: Modern formatting plugin with auto-format on save\n- **nvim-lint**: Asynchronous linting engine\n- **Formatters**: prettier/prettierd (JS/TS/CSS/HTML/JSON/YAML), black (Python), goimports+gofmt (Go), stylua (Lua), shfmt (Shell), rustfmt (Rust), terraform_fmt (Terraform)\n- **Linters**: golangci-lint (Go), flake8 (Python), eslint (JS/TS)\n\n#### Enhanced Go Development\n- **vim-go**: Comprehensive Go tooling and syntax\n- **go.nvim**: Modern Go development with enhanced features\n- **Enhanced formatting**: goimports + gofumpt for optimal code style\n- **Go-specific keybindings**:\n  - `\u003cleader\u003egr` - Go run\n  - `\u003cleader\u003egt` - Go test\n  - `\u003cleader\u003egtf` - Go test function\n  - `\u003cleader\u003egc` - Go coverage\n  - `\u003cleader\u003egi` - Go import\n  - `\u003cleader\u003egf` - Go format\n\n#### Debugging Support\n- **nvim-dap**: Debug Adapter Protocol client\n- **nvim-dap-go**: Go debugging adapter\n- **nvim-dap-ui**: Modern debugging UI\n- **nvim-dap-virtual-text**: Inline variable values during debugging\n- **Debug keybindings**:\n  - `\u003cF5\u003e` - Start/Continue debugging\n  - `\u003cF1\u003e/\u003cF2\u003e/\u003cF3\u003e` - Step into/over/out\n  - `\u003cleader\u003eb` - Toggle breakpoint\n  - `\u003cF7\u003e` - Toggle debug UI\n\n#### Testing Framework\n- **neotest**: Modern testing framework with live results\n- **neotest-go**: Go test adapter\n- **neotest-python**: Python test adapter\n- **Test keybindings**:\n  - `\u003cleader\u003etn` - Test nearest\n  - `\u003cleader\u003etf` - Test file\n  - `\u003cleader\u003ets` - Test summary\n  - `\u003cleader\u003eto` - Test output\n\n#### Git Integration\n- **gitsigns.nvim**: Git decorations and hunk management\n- **vim-fugitive**: Comprehensive Git integration\n- **vim-rhubarb**: GitHub integration for fugitive\n- **Git keybindings**:\n  - `]c` / `[c` - Navigate hunks\n  - `\u003cleader\u003ehs` - Stage hunk\n  - `\u003cleader\u003ehr` - Reset hunk\n  - `\u003cleader\u003ehp` - Preview hunk\n  - `\u003cleader\u003ehb` - Blame line\n\n#### UI \u0026 Visual Enhancements\n- **tokyonight.nvim**: Modern colorscheme with multiple variants\n- **catppuccin/nvim**: Pastel colorscheme\n- **gruvbox.nvim**: Classic retro colorscheme\n- **lualine.nvim**: Modern statusline\n- **bufferline.nvim**: Enhanced buffer/tab line with LSP diagnostics\n- **which-key.nvim**: Popup showing available keybindings\n- **noice.nvim**: Enhanced UI for messages and command line\n- **nvim-notify**: Beautiful notification system\n\n#### Code Navigation \u0026 Editing\n- **trouble.nvim**: Diagnostics and quickfix list with preview\n- **nvim-ufo**: Advanced code folding with Treesitter\n- **nvim-surround**: Manipulate surrounding characters (quotes, brackets, etc.)\n- **nvim-autopairs**: Auto-close brackets and quotes\n- **Comment.nvim**: Smart commenting with language awareness\n- **Navigation keybindings**:\n  - `\u003cleader\u003exx` - Open trouble diagnostics\n  - `zR` / `zM` - Open/close all folds\n  - `gcc` - Toggle line comment\n  - `gc` + motion - Comment motion\n\n#### Productivity \u0026 Movement\n- **todo-comments.nvim**: Highlight and search TODO comments\n- **hop.nvim**: Fast cursor movement to any character/word\n- **toggleterm.nvim**: Floating terminal integration\n- **Movement keybindings**:\n  - `f` - Hop to character\n  - `t` - Hop to word  \n  - `\u003cC-\\\u003e` - Toggle floating terminal\n\n#### Language-Specific Extensions\n- **kotlin-vim**: Kotlin syntax highlighting\n- **vim-ruby**: Ruby language support and syntax\n- **vim-javascript**: Enhanced JavaScript syntax\n- **typescript-vim**: TypeScript language support\n- **rust.vim**: Rust language support\n- **vim-terraform**: Terraform syntax and tools\n- **vim-helm**: Helm chart template support\n- **stan-vim**: Stan statistical modeling language\n- **markdown-preview.nvim**: Live markdown preview in browser\n\n### Installation \u0026 Dependencies\n\nThe provisioning system automatically:\n\n1. **Installs Neovim** via Homebrew (`nvim` package)\n2. **Clones dein.vim** plugin manager to `~/dotfiles/vim/dein/repos/github.com/Shougo/dein.vim`\n3. **Installs all plugins** by running `nvim --headless -c \"call dein#install()\" -c \"qall\"`\n4. **Installs LSP servers and tools**:\n   - **Via Homebrew**: `lua-language-server`, `rust-analyzer`, `terraform-ls`, `shellcheck`, `shfmt`, `stylua`\n   - **Via npm**: `pyright`, `typescript-language-server`, `vscode-langservers-extracted`, `yaml-language-server`, `bash-language-server`, `prettier`, `eslint`, `prettierd`\n   - **Via Python pip**: `black`, `flake8`, `isort`\n   - **Via Go install**: `gopls`, `golangci-lint`, `goimports`, `gofumpt`, `dlv` (Go debugger)\n5. **Builds Node.js dependencies** for markdown-preview plugin\n6. **Compiles native extensions** like telescope-fzf-native for optimal performance\n\n### Configuration Structure\n\n```\nnvim/\n├── init.vim              # Main configuration file\nvim/\n├── common.vim           # Shared Vim/Neovim settings and keymaps\n├── local.vim            # Local customizations (empty by default)\n└── dein/\n    ├── repos/           # Plugin installation directory\n    ├── state_nvim.vim   # Dein state file\n    └── .cache/          # Plugin cache\n```\n\n### Safe Loading \u0026 Error Handling\n\nThe configuration uses a `safe_require()` function in Lua to gracefully handle missing dependencies:\n- Plugins that fail to load show warnings but don't break the entire configuration\n- LSP servers, completion, and other features degrade gracefully if dependencies are missing\n- This allows partial functionality even during initial setup or if some tools aren't installed\n\n### Extending the Configuration\n\nTo add new plugins:\n1. Add `call dein#add('plugin/name')` to the dein configuration in `nvim/init.vim`\n2. Add any necessary Lua configuration in the `lua \u003c\u003c EOF` block\n3. Run `:call dein#install()` in Neovim to install the new plugin\n\nThe modular design makes it easy to extend language support, add new tools, or customize the development environment.\n\n### Summary of Enhancements\n\nThis enhanced Neovim configuration transforms your editor into a full-featured IDE with:\n\n**🚀 Go Development Excellence**:\n- Enhanced LSP with gopls, staticcheck, and gofumpt\n- Integrated testing with neotest-go\n- Full debugging support with DAP and Delve\n- Comprehensive tooling via vim-go and go.nvim\n\n**🔧 Modern Development Tools**:\n- 40+ carefully selected plugins for maximum productivity\n- Support for 15+ programming languages\n- Advanced debugging, testing, and formatting capabilities\n- Beautiful UI with multiple colorscheme options\n\n**⚡ Performance \u0026 Usability**:\n- Fast file navigation with Telescope + FZF\n- Smart code folding and text objects\n- Efficient movement with Hop\n- Integrated terminal and Git workflows\n\n**🛡️ Robust \u0026 Reliable**:\n- Safe plugin loading with graceful error handling\n- Automatic dependency management\n- Comprehensive key mapping documentation\n- Easy extensibility for future needs\n\nThe configuration provides an IDE-like experience while maintaining Neovim's speed and flexibility, making it perfect for Go development and general programming tasks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiramekun%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhiramekun%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiramekun%2Fdotfiles/lists"}