|
@ -29,18 +29,12 @@ |
|
|
- lispy? [[https://github.com/abo-abo/lispy]] |
|
|
- lispy? [[https://github.com/abo-abo/lispy]] |
|
|
|
|
|
|
|
|
* Header |
|
|
* Header |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: a14d7c89-24ea-41ae-b185-944bab49aa02 |
|
|
|
|
|
:END: |
|
|
|
|
|
Emacs variables are dynamically scoped. That's unusual for most languages, so disable it here, too |
|
|
Emacs variables are dynamically scoped. That's unusual for most languages, so disable it here, too |
|
|
#+begin_src emacs-lisp |
|
|
#+begin_src emacs-lisp |
|
|
;;; init.el --- -*- lexical-binding: t -*- |
|
|
;;; init.el --- -*- lexical-binding: t -*- |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
* First start |
|
|
* First start |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 1c24d48e-0124-4a0b-8e78-82e4c531e818 |
|
|
|
|
|
:END: |
|
|
|
|
|
These functions updates config.el whenever changes in config.org are made. The update will be active after saving. |
|
|
These functions updates config.el whenever changes in config.org are made. The update will be active after saving. |
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
@ -199,9 +193,6 @@ Restore it to reasonable value after init. Also stop garbage collection during m |
|
|
(setq frame-inhibit-implied-resize t) |
|
|
(setq frame-inhibit-implied-resize t) |
|
|
#+end_src |
|
|
#+end_src |
|
|
* Default settings |
|
|
* Default settings |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 3512d679-d111-4ccd-8372-6fc2acbc0374 |
|
|
|
|
|
:END: |
|
|
|
|
|
** paths |
|
|
** paths |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(defconst *sys/gui* |
|
|
(defconst *sys/gui* |
|
@ -316,9 +307,6 @@ Restore it to reasonable value after init. Also stop garbage collection during m |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
** Font |
|
|
** Font |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: dc8eb670-e6bb-4bfb-98f0-aae1860234fb |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(when *sys/linux* |
|
|
(when *sys/linux* |
|
|
(set-face-font 'default "Hack-10")) |
|
|
(set-face-font 'default "Hack-10")) |
|
@ -327,10 +315,6 @@ Restore it to reasonable value after init. Also stop garbage collection during m |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** Themes |
|
|
** Themes |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 9ccf37c0-6837-43cb-bed8-5a353799d8b1 |
|
|
|
|
|
:END: |
|
|
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(defun me/toggle-theme () |
|
|
(defun me/toggle-theme () |
|
|
(interactive) |
|
|
(interactive) |
|
@ -354,9 +338,6 @@ Windows Theme: |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** line wrappings |
|
|
** line wrappings |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 14ae933e-2941-4cc3-82de-38f90f91bfd3 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(global-visual-line-mode) |
|
|
(global-visual-line-mode) |
|
|
(diminish 'visual-line-mode) |
|
|
(diminish 'visual-line-mode) |
|
@ -373,9 +354,6 @@ Windows Theme: |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** line numbers |
|
|
** line numbers |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 7b969436-98c9-4b61-ba7a-9fb22c9781ad |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package display-line-numbers |
|
|
(use-package display-line-numbers |
|
|
:init |
|
|
:init |
|
@ -390,9 +368,6 @@ Windows Theme: |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** misc |
|
|
** misc |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: a2873138-16ee-4990-89a2-26eab778ea74 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package rainbow-mode |
|
|
(use-package rainbow-mode |
|
|
:ensure t |
|
|
:ensure t |
|
@ -469,9 +444,6 @@ Exclude some dirs from spamming recentf |
|
|
(savehist-file (concat MY--PATH_USER_LOCAL "history"))) |
|
|
(savehist-file (concat MY--PATH_USER_LOCAL "history"))) |
|
|
#+end_src |
|
|
#+end_src |
|
|
* undo |
|
|
* undo |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: d57621b2-5472-4c89-a520-b4133db0b9af |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package undo-tree |
|
|
(use-package undo-tree |
|
|
:ensure t |
|
|
:ensure t |
|
@ -490,9 +462,6 @@ Exclude some dirs from spamming recentf |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
* imenu-list |
|
|
* imenu-list |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 0ae27ec9-5d77-43cf-ac76-5e12cc959046 |
|
|
|
|
|
:END: |
|
|
|
|
|
A minor mode to show imenu in a sidebar. |
|
|
A minor mode to show imenu in a sidebar. |
|
|
Call imenu-list-smart-toggle. |
|
|
Call imenu-list-smart-toggle. |
|
|
[[https://github.com/bmag/imenu-list][Source]] |
|
|
[[https://github.com/bmag/imenu-list][Source]] |
|
@ -513,9 +482,6 @@ Exclude some dirs from spamming recentf |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
* which-key |
|
|
* which-key |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: a880f079-b3a3-4706-bf1e-5f6c680101f1 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package which-key |
|
|
(use-package which-key |
|
|
:ensure t |
|
|
:ensure t |
|
@ -542,10 +508,6 @@ Exclude some dirs from spamming recentf |
|
|
(setq save-abbrevs 'silently)) ;; don't bother me with asking for abbrev saving |
|
|
(setq save-abbrevs 'silently)) ;; don't bother me with asking for abbrev saving |
|
|
#+end_src |
|
|
#+end_src |
|
|
* Evil |
|
|
* Evil |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 80ca70e2-a146-46db-b581-418d655dc1fc |
|
|
|
|
|
:END: |
|
|
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package evil |
|
|
(use-package evil |
|
|
:ensure t |
|
|
:ensure t |
|
@ -557,9 +519,6 @@ Exclude some dirs from spamming recentf |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
* General (key mapper) |
|
|
* General (key mapper) |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: a20f183f-d41a-4dff-bc37-3bc4e25c8036 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package general |
|
|
(use-package general |
|
|
:ensure t) |
|
|
:ensure t) |
|
@ -682,10 +641,6 @@ begin_src emacs-lisp |
|
|
end_src |
|
|
end_src |
|
|
|
|
|
|
|
|
* ivy / counsel / swiper |
|
|
* ivy / counsel / swiper |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 55c74ba9-7761-4545-8ddd-087d6ee33e4b |
|
|
|
|
|
:END: |
|
|
|
|
|
|
|
|
|
|
|
+BEGIN_SRC emacs-lisp |
|
|
+BEGIN_SRC emacs-lisp |
|
|
; (require 'ivy) |
|
|
; (require 'ivy) |
|
|
(use-package ivy |
|
|
(use-package ivy |
|
@ -742,9 +697,6 @@ end_src |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
* company |
|
|
* company |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 944563b6-b04a-44f2-9b21-a6a3e200867c |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package company |
|
|
(use-package company |
|
|
:defer 1 |
|
|
:defer 1 |
|
@ -824,10 +776,6 @@ To keep the subheading structure when archiving, set the properties of the super |
|
|
#+end_src |
|
|
#+end_src |
|
|
When moving BAR to archive, it will go to FILENAME.org_archive below the heading FOO |
|
|
When moving BAR to archive, it will go to FILENAME.org_archive below the heading FOO |
|
|
** org |
|
|
** org |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: b89d7639-080c-4168-8884-bd5d8965f466 |
|
|
|
|
|
:END: |
|
|
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package org |
|
|
(use-package org |
|
|
:ensure org-plus-contrib |
|
|
:ensure org-plus-contrib |
|
@ -877,9 +825,6 @@ When moving BAR to archive, it will go to FILENAME.org_archive below the heading |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** languages |
|
|
** languages |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: ad3af718-d0db-448c-9f75-eb9e250c2862 |
|
|
|
|
|
:END: |
|
|
|
|
|
Set some languages and disable confirmation for evaluating code blocks C-c C-c |
|
|
Set some languages and disable confirmation for evaluating code blocks C-c C-c |
|
|
|
|
|
|
|
|
+BEGIN_SRC emacs-lisp |
|
|
+BEGIN_SRC emacs-lisp |
|
@ -979,9 +924,6 @@ Another setup, because org-babel-do-load-languages requires eager loading |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
** habits |
|
|
** habits |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: fcc91d0a-d040-4910-b2cf-3221496a3842 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(require 'org-habit) ;;TODO Lösung ohne require finden, scheint mir nicht ideal zu sein, nur um ein org-modul zu aktivieren |
|
|
(require 'org-habit) ;;TODO Lösung ohne require finden, scheint mir nicht ideal zu sein, nur um ein org-modul zu aktivieren |
|
|
;; (add-to-list 'org-modules "org-habit") |
|
|
;; (add-to-list 'org-modules "org-habit") |
|
@ -992,9 +934,6 @@ Another setup, because org-babel-do-load-languages requires eager loading |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** org-id |
|
|
** org-id |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: c4017c45-d650-410c-8bd4-bc3cf42bbbb9 |
|
|
|
|
|
:END: |
|
|
|
|
|
Currently it causes some debugger errors "not a standard org time string", so it's disabled |
|
|
Currently it causes some debugger errors "not a standard org time string", so it's disabled |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
;; (use-package org-id |
|
|
;; (use-package org-id |
|
@ -1004,9 +943,6 @@ Currently it causes some debugger errors "not a standard org time string", so it |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** org-agenda |
|
|
** org-agenda |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 03b67efb-4179-41e5-bc2e-c472b13f8be6 |
|
|
|
|
|
:END: |
|
|
|
|
|
Custom keywords, depending on environment |
|
|
Custom keywords, depending on environment |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(when *work_remote* |
|
|
(when *work_remote* |
|
@ -1065,9 +1001,6 @@ org-super-agenda |
|
|
[[https://github.com/nobiot/org-transclusion][org-transclusion]]? |
|
|
[[https://github.com/nobiot/org-transclusion][org-transclusion]]? |
|
|
|
|
|
|
|
|
** org-caldav |
|
|
** org-caldav |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 6bd24369-0d04-452f-85a0-99914dfb74ff |
|
|
|
|
|
:END: |
|
|
|
|
|
Vorerst deaktiviert, Nutzen evtl. nicht vorhanden |
|
|
Vorerst deaktiviert, Nutzen evtl. nicht vorhanden |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
;;(use-package org-caldav |
|
|
;;(use-package org-caldav |
|
@ -1080,9 +1013,6 @@ Vorerst deaktiviert, Nutzen evtl. nicht vorhanden |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** journal |
|
|
** journal |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: a1951e18-d862-4198-9652-016e979053c8 |
|
|
|
|
|
:END: |
|
|
|
|
|
[[https://github.com/bastibe/org-journal][Source]] |
|
|
[[https://github.com/bastibe/org-journal][Source]] |
|
|
|
|
|
|
|
|
Ggf. durch org-roam-journal ersetzen |
|
|
Ggf. durch org-roam-journal ersetzen |
|
@ -1154,9 +1084,6 @@ org-roam-db-sync |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
** Magit / Git |
|
|
** Magit / Git |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: d3589460-317f-40f6-9056-053be9ba3217 |
|
|
|
|
|
:END: |
|
|
|
|
|
Little crash course in magit: |
|
|
Little crash course in magit: |
|
|
- magit-init to init a git project |
|
|
- magit-init to init a git project |
|
|
- magit-status (C-x g) to call the status window |
|
|
- magit-status (C-x g) to call the status window |
|
@ -1183,9 +1110,6 @@ In status buffer: |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** LSP |
|
|
** LSP |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 06ad00e0-44a6-4bfb-ba6f-b1672811e053 |
|
|
|
|
|
:END: |
|
|
|
|
|
Configuration for the language server protocol |
|
|
Configuration for the language server protocol |
|
|
*ACHTUNG* Dateipfad muss absolut sein, symlink im Pfad führt zumindest beim ersten Start zu Fehlern beim lsp |
|
|
*ACHTUNG* Dateipfad muss absolut sein, symlink im Pfad führt zumindest beim ersten Start zu Fehlern beim lsp |
|
|
Sobald der lsp einmal lief, kann zukünftig der symlink-Pfad genommen werden. |
|
|
Sobald der lsp einmal lief, kann zukünftig der symlink-Pfad genommen werden. |
|
@ -1260,9 +1184,6 @@ TODO Unterverzeichnisse wurden noch nicht getestet |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** yasnippet |
|
|
** yasnippet |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 935d89ef-645e-4e92-966f-2fe3bebb2880 |
|
|
|
|
|
:END: |
|
|
|
|
|
For useful snippet either install yasnippet-snippets or get them from here |
|
|
For useful snippet either install yasnippet-snippets or get them from here |
|
|
[[https://github.com/AndreaCrotti/yasnippet-snippets][Github]] |
|
|
[[https://github.com/AndreaCrotti/yasnippet-snippets][Github]] |
|
|
|
|
|
|
|
@ -1280,9 +1201,6 @@ For useful snippet either install yasnippet-snippets or get them from here |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
** hippie expand |
|
|
** hippie expand |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: c55245bc-813d-4816-a0ca-b4e2e793e28b |
|
|
|
|
|
:END: |
|
|
|
|
|
With hippie expand I am able to use yasnippet and emmet at the same time with the same key. |
|
|
With hippie expand I am able to use yasnippet and emmet at the same time with the same key. |
|
|
#+begin_src emacs-lisp |
|
|
#+begin_src emacs-lisp |
|
|
(use-package hippie-exp |
|
|
(use-package hippie-exp |
|
@ -1295,9 +1213,6 @@ With hippie expand I am able to use yasnippet and emmet at the same time with th |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
** flycheck |
|
|
** flycheck |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 3d8f2547-c5b3-46d0-91b0-9667f9ee5c47 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package flycheck |
|
|
(use-package flycheck |
|
|
:ensure t |
|
|
:ensure t |
|
@ -1317,9 +1232,6 @@ With hippie expand I am able to use yasnippet and emmet at the same time with th |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** Projectile |
|
|
** Projectile |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: a90329fd-4d36-435f-8308-a2771ac4c320 |
|
|
|
|
|
:END: |
|
|
|
|
|
Manage projects and jump quickly between its files |
|
|
Manage projects and jump quickly between its files |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package projectile |
|
|
(use-package projectile |
|
@ -1351,9 +1263,6 @@ Manage projects and jump quickly between its files |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** smartparens |
|
|
** smartparens |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 997ec416-33e6-41ed-8c7c-75a7bc47d285 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package smartparens |
|
|
(use-package smartparens |
|
|
:ensure t |
|
|
:ensure t |
|
@ -1377,19 +1286,12 @@ Manage projects and jump quickly between its files |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** lisp |
|
|
** lisp |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: a2bc3e08-b203-49d3-b337-fb186a14eecb |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
(use-package elisp-mode |
|
|
(use-package elisp-mode |
|
|
:defer t) |
|
|
:defer t) |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** web |
|
|
** web |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: c0b0b4e4-2162-429f-b80d-6e5334b1290e |
|
|
|
|
|
:END: |
|
|
|
|
|
|
|
|
|
|
|
apt install npm |
|
|
apt install npm |
|
|
sudo npm install -g vscode-html-languageserver-bin |
|
|
sudo npm install -g vscode-html-languageserver-bin |
|
|
evtl alternativ typescript-language-server? |
|
|
evtl alternativ typescript-language-server? |
|
@ -1476,9 +1378,6 @@ npm install -g prettier |
|
|
#+end_src |
|
|
#+end_src |
|
|
|
|
|
|
|
|
** YAML |
|
|
** YAML |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 95413247-04d5-4e02-8431-06c162ec8f3b |
|
|
|
|
|
:END: |
|
|
|
|
|
#+begin_src emacs-lisp |
|
|
#+begin_src emacs-lisp |
|
|
(use-package yaml-mode |
|
|
(use-package yaml-mode |
|
|
:if *sys/linux* |
|
|
:if *sys/linux* |
|
@ -1499,9 +1398,6 @@ npm install -g prettier |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
** Python |
|
|
** Python |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 8c76fcd1-c57c-48ab-8af0-aa782de6337f |
|
|
|
|
|
:END: |
|
|
|
|
|
Systemseitig muss python-language-server installiert sein: |
|
|
Systemseitig muss python-language-server installiert sein: |
|
|
apt install python3-pip python3-setuptools python3-wheel |
|
|
apt install python3-pip python3-setuptools python3-wheel |
|
|
apt install build-essential python3-dev |
|
|
apt install build-essential python3-dev |
|
@ -1587,9 +1483,6 @@ apt install build-essential python3-dev |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
* beancount |
|
|
* beancount |
|
|
** Installation |
|
|
** Installation |
|
|
:PROPERTIES: |
|
|
|
|
|
:ID: 2c329043-b7a9-437d-a5cf-f2ad6514be91 |
|
|
|
|
|
:END: |
|
|
|
|
|
#+BEGIN_SRC shell :tangle no |
|
|
#+BEGIN_SRC shell :tangle no |
|
|
sudo su |
|
|
sudo su |
|
|
cd /opt |
|
|
cd /opt |
|
|