Closed webknjaz closed 1 year ago
Hello, Sviatoslav, I am trying to install some plugins (from your list and also some internet recommendations). Firstly, I installed nvim, then I wrote this syntax in init.vim
set number set autoindent set tabstop=4 set smarttab set softtabstop=4 set mouse=a set encoding=utf-8 syntax enable set scrolloff=7 set shiftwidth=4 set expandtab set fileformat=unix
call plug#begin('~/.vim/plugged')
Plug 'morhetz/gruvbox' Plug 'windwp/nvim-autopairs' Plug 'preservim/nerdtree' Plug 'preservim/nerdcommenter' Plug 'norcalli/nvim-colorizer.lua' Plug 'vim-airline/vim-airline-themes' Plug 'SirVer/ultisnips' Plug 'davidhalter/jedi-vim' Plug 'PyCQA/flake8' Plug 'junegunn/fzf' Plug 'duane9/nvim-rg'
call plug#end()
Then, I got this alarm: Finishing ... Done! x ripgrep: Cloning into '/home/olenayefymenko/.vim/plugged/ripgrep'... fatal: could not read Username for 'https://github.com/': terminal prompts disabled
Please, help me in this question. I should find another resource for RipGrep? (others were installed)
It looks like you use custom/manual setup for packages, outside of astronvim. When you use astronvim, you need to place the configuration in a dedicated place, not overriding the entry point config file.
Regarding the error, it looks like the underlying git clone
is failing. The URL uses HTTPS transport, not SSH. Normally, this works for public repositories but the private repos need some sort of credentials. For SSH, it's a private key, for HTTPS it's a login+password or an access token. Since you don't run git clone
in your terminal interactively, git
is unable to prompt for the username and the password and fails to complete cloning.
Back to the point of private vs. public repos, Vim plugins are usually maintained as public repos, not needing any authentication credentials whatsoever — you won't be prompted for those. But it seems like the target repo does not exist so git
is trying to see if sending credentials would reveal it to be private which is what you observe.
So ultimately, the problem seems to be that you might've listed a plugin that no longer exists or moved elsewhere.
Still, I'd recommend trying to stick to the config layout provided by Astronvim for better structure.
Note that some of the Vim plugins require third-party software installed additionally, with a system package manager (dnf
).
Thank you for detailed explanation! I understood your idea, I have some difficulties with installing Asronvim, because need more knowledge and practice for writing commands in terminal, but hope I can implement it soon. UPD: I installed it, looks very cool :)
Sviatoslav, also I would like to ask you about correct adding Nerd fonts (the first requirement in instruction for install), I spent a lot of time to understanding how I should to write command in CLI. I learned basic commands in Linux (https://www.hostinger.com/tutorials/linux-commands) and cp as well. Firstly, I was trying to add archive in zip format (also unzip) in /usr/share/fonts/ or /usr/local/share/fonts/ , but I had errors connected with permissions. In the end, I used this way: git clone --depth=1 https://github.com/ryanoasis/nerd-fonts ~/.nerd-fonts cd .nerd-fonts sudo ./install.sh Please, give a hint, how would you add the font for this issue (install Astronvim?)
but I had errors connected with permissions
Yep, when you have permission errors, it's a red flag. Of course, it's possible to override that with sudo
but it'd be dangerous (and is a common rookie mistake). So it's good that you've gone for doing this in userspace.
In general, you should only install things in superuser-controlled locations through dnf
and maybe edit some configs in /etc
if needed. But most of the stuff you need for your dev env should fit in your user's home directory, where you would have enough privileges for virtually anything.
Note that you should never need sudo
when putting things into user-owned directories — it'll work at first, but the files produced will be owned by root
, making them inaccessible to your regular user. And it only goes downhill from there.
In the end, I used this way: git clone --depth=1 ryanoasis/nerd-fonts ~/.nerd-fonts cd .nerd-fonts sudo ./install.sh
I never used it like this, but downloaded a font from https://www.nerdfonts.com/font-downloads and unpacked it under ~/.local/share/fonts
(there's also curl
-based examples at the bottom of that page). I think, it might also be necessary to run fc-cache -fv
to reset the font cache.
After that, once the font is in your system, various software can pick it up and you can select it in apps. In case of Kitty, it's config is located at ~/.config/kitty/kitty.conf
. Here's a config sample you can use as a starting point — https://sw.kovidgoyal.net/kitty/_downloads/433dadebd0bf504f8b008985378086ce/kitty.conf.
Once you change the Kitty config, remember to kill it and start a fresh Kitty window — most programs only read their config file during startup so you can't see any changes while running an instance that was started before the config changes were made.
Why am I even talking about Kitty? That's because it's what is using the fonts to render characters on screen. NeoVim does not do that — just like any other TUI, it works with character streams, it reads them from stdin/keyboard and prints out other characters back to the terminal, refreshing what you see. When such output reaches to the terminal (or the emulator, Kitty, in our case), it's the terminal's job to display all that. There are standards in place that allow injecting text sequences in the output instructing the terminal to switch colors for the following test or apply other simple decorations — that's how you see it colored, but those CLI/TUI apps don't actually interact with your display directly at all.
Oh, and one more thing. Please, check out Markdown and start using code-block highlighting. Like this
, kinda.
def hello(world):
...
$ command --options
output
@webknjaz thank you a lot for details about the peculiarities of symbols transmission! Yes, I installed fonts like in your example in ~/.local/share/fonts. I tried to check applied font:
[olenayefymenko@fedora kitty]$ kitty --debug-font-fallback [026 17:48:37.980866] Preloaded font faces: [026 17:48:37.980919] normal face: /usr/share/fonts/google-noto-vf/NotoSansMono-VF.ttf:0 [026 17:48:37.980938] bold face: /usr/share/fonts/google-noto-vf/NotoSansMono-VF.ttf:262144 [026 17:48:37.980952] italic face: /usr/share/fonts/google-noto-vf/NotoSansMono-VF.ttf:0 [026 17:48:37.980974] bi face: /usr/share/fonts/google-noto-vf/NotoSansMono-VF.ttf:262144
I didn't find another way. I interpret this as a font replacement. If I am wrong, I will be grateful if you give maybe the link where I can check, I read about this in google and https://sw.kovidgoyal.net/kitty/conf/
As for Markdown, I checked some file.py and I made sure about highlighter in GitHub. But, I am confused about style of writing for example path in your comment. I have another, without gray background (I mean ~/.local/share/fonts.)
In Markdown, you can wrap text with single backticks to mark it as "inline code", as opposed to the triple backticks with an optional lexer name which is used for marking code blocks.
As for the font, I see that it's loaded from the system location. It is typical that a list of paths is checked for file existence — first software checks user dirs and then, the system ones. In your log, it's found that font in the system location which probably means that it's not present in the user directory. What font family have you sent in the Kitty config? Is it present in the fonts folder under the user home dir?
I have chosen BitstreamVeraSansMono Nerd Font. My list-fonts: [olenayefymenko@fedora kitty]$ kitty list-fonts BitstreamVeraSansMono Nerd Font Bitstream Vera Sans Mono Bold Nerd Font Complete Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Bitstream Vera Sans Mono Nerd Font Complete Bitstream Vera Sans Mono Oblique Nerd Font Complete
BitstreamVeraSansMono Nerd Font Mono Bitstream Vera Sans Mono Bold Nerd Font Complete Mono Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Mono Bitstream Vera Sans Mono Nerd Font Complete Mono Bitstream Vera Sans Mono Oblique Nerd Font Complete Mono
BitstreamVeraSansMono NF Bitstream Vera Sans Mono Bold Nerd Font Complete Windows Compatible Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Windows Compatible Bitstream Vera Sans Mono Nerd Font Complete Windows Compatible Bitstream Vera Sans Mono Oblique Nerd Font Complete Windows Compatible
BitstreamVeraSansMono NFM Bitstream Vera Sans Mono Bold Nerd Font Complete Mono Windows Compatible Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Mono Windows Compatible Bitstream Vera Sans Mono Nerd Font Complete Mono Windows Compatible Bitstream Vera Sans Mono Oblique Nerd Font Complete Mono Windows Compatible
Droid Sans Droid Sans
Liberation Mono Liberation Mono Liberation Mono Bold Liberation Mono Bold Italic Liberation Mono Italic
Nimbus Mono PS Nimbus Mono PS Bold Nimbus Mono PS Bold Italic Nimbus Mono PS Italic Nimbus Mono PS Regular NimbusMonoPS-Bold NimbusMonoPS-BoldItalic NimbusMonoPS-Italic NimbusMonoPS-Regular
Source Code Pro Source Code Pro Source Code Pro Black Source Code Pro Black Italic Source Code Pro Bold Source Code Pro Bold Italic Source Code Pro ExtraLight Source Code Pro ExtraLight Italic Source Code Pro Italic Source Code Pro Light Source Code Pro Light Italic Source Code Pro Medium Source Code Pro Medium Italic Source Code Pro Semibold Source Code Pro Semibold Italic
"Is it present in the fonts folder under the user home dir?" Yes UPD: I understood the mistake. I am fixing
I assumed that configuration settings were not saved (I had swp file, I fixed this by correct saving in Vim). Now, when I type in CLI: $ kitty ls -a I don't have any editable file (swp format I mean), after command: $ vim .kitty.config My vim is opened. After $ kitty --debug-font-fallback I obtained the same location: "/usr/share/fonts/google-noto-vf/NotoSansMono"
Finally, (after "--debug-font-fallback"), I have a new open kitty window.
Did you put the config in the correct location or do you pass this custom name to the Kitty invocation? What's the full config entry line for the font family?
Note that for terminal it's best to use fixed-width fonts, also known as monospace. These often have "Mono" in their names.
P.S. For terminal session logs (where you have a terminal prompt, followed by a command and its output), use code blocks with the console
lexer. It's source would look smth like this:
```console
$ command --args
Lines of
output.
Here.
The above is rendered as follows:
```console
$ command --args
Lines of
output.
Here.
As for the font, I see that it's loaded from the system location. It is typical that a list of paths is checked for file existence — first software checks user dirs and then, the system ones. In your log, it's found that font in the system location which probably means that it's not present in the user directory. What font family have you sent in the Kitty config? Is it present in the fonts folder under the user home dir?
Hello, Sviatoslav, I am sure that the downloaded font is in the home directory.
$ cd fonts/ $ ls -a . .. 'Bitstream Vera License.txt' 'Bitstream Vera Sans Mono Bold Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Bold Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Bold Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Bold Nerd Font Complete Windows Compatible.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Windows Compatible.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete Windows Compatible.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete Windows Compatible.ttf' readme.md $ pwd /home/olenayefymenko/.local/share/fonts
I consider that I implemented incorrect actions when I wrote scripts in Vim
As for the font, I see that it's loaded from the system location. It is typical that a list of paths is checked for file existence — first software checks user dirs and then, the system ones. In your log, it's found that font in the system location which probably means that it's not present in the user directory. What font family have you sent in the Kitty config? Is it present in the fonts folder under the user home dir?
Hello, Sviatoslav, I am sure that the downloaded font is in the home directory.
$ cd fonts/ $ ls -a . .. 'Bitstream Vera License.txt' 'Bitstream Vera Sans Mono Bold Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Bold Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Bold Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Bold Nerd Font Complete Windows Compatible.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Bold Oblique Nerd Font Complete Windows Compatible.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Nerd Font Complete Windows Compatible.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete Mono.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete Mono Windows Compatible.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete.ttf' 'Bitstream Vera Sans Mono Oblique Nerd Font Complete Windows Compatible.ttf' readme.md $ pwd /home/olenayefymenko/.local/share/fonts
It'd be nice if you used a code block for this :point_up:
Also, it'd be interesting to see ls -alh
— this reveals the file privileges/owners info, not just names.
I consider that I implemented incorrect actions when I wrote scripts in Vim
No, Vim (nor NeoVim) does not know anything about the fonts. It's Kitty that is using them.
Oh, and I still haven't seen any confirmation that you modify the config in the right location. Try to include such details in the logs. Because when you say that you think you edit the right file, I can't verify/compare that with the information provided. One of the ways to verify that the config file is loaded is to set a large font size, so it'd be visually noticeable that it's changed. FWIW kitty --help
lists the config lookup paths under the --config
option description.
Here are the values I've got:
$ grep '^font_family ' ~/.config/kitty/kitty.conf | tail -n1
font_family Fira Code Retina Nerd Font Complete
$ grep '^font_size ' ~/.config/kitty/kitty.conf | tail -n1
font_size 29.0
(the size is large due to me having a 4K display + it's more comfortable with big letters, it may be different for your laptop, though)
P.S. It seems like you've only got *.ttf
font files. IIRC those are bitmap which means that they are rendered poorly in Kitty. Always use vector fonts, their files will have the *.otf
extension, for example. I've checked out a few fonts and it seems like Hack
, Hasklig
, Overpass Mono
, Fira Mono
, Code New Roman
, Hermit
, Droid Sans Mono
(I've excluded a few r*ssian fonts from this list) — if you use any of them, it's likely to fix your problem. You can preview some of these (unpatched?) fonts at https://www.programmingfonts.org/#hack.
P.P.S. Since there's no easy way of listing the vector fonts separately, I've filed https://github.com/ryanoasis/nerd-fonts/issues/1088 upstream.
No, Vim (nor NeoVim) does not know anything about the fonts. It's Kitty that is using them.
I understood, but wrote not clear for you. Sorry in terminal, I typed:
$ vim .kitty.config
then I wrote first var options of fonts (example from youtube, mix. It is not correct):
font family Bitstream Vera Sans Mono Nerd Font Complete bold_font auto: italic_font auto bold_italic_font auto
Then I saved it. (:wq) I also had second var like in example in https://sw.kovidgoyal.net/kitty/conf/
font_family Operator Mono Book bold_font Operator Mono Medium italic_font Operator Mono Book Italic bold_italic_font Operator Mono Medium Italic`
But, I steel can't understand:
1) How to save parametrs through the vim editor for kitty.config
2) I am confused by checking config file in Kitty. When I typed
$ ~/.config/kitty/kitty.conf
Permission denied
Also, it'd be interesting to see ls -alh — this reveals the file privileges/owners info, not just names.
drwxr-xr-x. 1 olenayefymenko olenayefymenko 46 Jan 27 17:14 .
drwxr-xr-x. 1 olenayefymenko olenayefymenko 728 Jan 26 18:34 ..
-rw-r--r--. 1 olenayefymenko olenayefymenko 77K Jan 27 15:59 kitty.conf
-rw-r--r--. 1 olenayefymenko olenayefymenko 163 Jan 27 17:14 .kitty.config
No, Vim (nor NeoVim) does not know anything about the fonts. It's Kitty that is using them. Oh, and I still haven't seen any confirmation that you modify the config in the right location. Try to include such details in the logs. Because when you say that you think you edit the right file, I can't verify/compare that with the information provided. One of the ways to verify that the config file is loaded is to set a large font size, so it'd be visually noticeable that it's changed. FWIW kitty --help lists the config lookup paths under the --config option description. Here are the values I've got:
Thank you, I will test this
P.S. I am sorry, that I can't resolve this task so long(
No, Vim (nor NeoVim) does not know anything about the fonts. It's Kitty that is using them.
I understood, but wrote not clear for you. Sorry in terminal, I typed:
$ vim .kitty.config
Note that since it's inline highlighting, there's no need to prepend a $
prompt or put it on a separate line. Use an explicit console
highlighting with a triple-backticked code block otherwise.
This name you used (.kitty.config
) is a random file that Kitty does not load by default (that is, unless you pass it explicitly, as in kitty --config=.kitty.config
). The correct filename is kitty.conf
and the full path would be ~/.config/kitty/kitty.conf
. This means that you edit some random file that does not get loaded by Kitty at all, no matter how many times you save it, it just exists on disk and that's about it.
then I wrote first var options of fonts (example from youtube, mix. It is not correct):
font family Bitstream Vera Sans Mono Nerd Font Complete bold_font auto: italic_font auto bold_italic_font auto
Try to use code blocks for any excerpts from text files or terminal output. So it's visible where this text starts and ends, and the formatting wouldn't be broken — as you see, GitHub thinks it's a paragraph of regular text, not a part of some code-like block. It'd be better if it looked like this:
font family Bitstream Vera Sans Mono Nerd Font Complete
bold_font auto:
italic_font auto
bold_italic_font auto
use the preview feature on GH UI, if unsure how it'll get rendered. Now, it's evident that the colon there might be a syntax error. Oh! And there's a space in font family
, it's actually font_family
. ~Also, does bold_italic_font
setting actually exist in Kitty?~ Ah, it does, nevermind.
Then I saved it. (:wq) I also had second var like in example in sw.kovidgoyal.net/kitty/conf
Here, you have a chance to highlight the keystrokes as :wq
.
font_family Operator Mono Book bold_font Operator Mono Medium italic_font Operator Mono Book Italic bold_italic_font Operator Mono Medium Italic`
When formatted as a Markdown code block, it'd look like this:
font_family Operator Mono Book
bold_font Operator Mono Medium
italic_font Operator Mono Book Italic
bold_italic_font Operator Mono Medium Italic`
What's that rogue trailing backtick doing there?
But, I steel can't understand:
https://en.wikipedia.org/wiki/Steel. Of course, you could proofread it manually, but it's still a subject to “situational blindness”. So I recommend you using https://languagetool.org and/or https://grammarly.com to avoid such typos, as companion tools.
1. How to save parametrs through the vim editor for kitty.config
You're saving the file correctly. But the file name is wrong. See above. By the way, highlight kitty.config
. I also see that you use this interchangeably with .kitty.config
which has a leading period.
2. I am confused by checking config file in Kitty. When I typed `$ ~/.config/kitty/kitty.conf` Permission denied
Don't use inline highlighting here, just for the first line. It should be a code block, since “Permission denied” is probably an output you've got on the terminal and not some arbitrary text you typed in above manually. This looks nicer:
$ ~/.config/kitty/kitty.conf
Permission denied
Indent every line if you need it to be under a list item.
So the reason you can't execute ~/.config/kitty/kitty.conf
is that (1) it's a text file that is not an executable program and (2) it does not have the executable bit set (you'd see this in the ls -alh
output as x
). When you type in a file path in the terminal, and hit Enter
, the shell is trying to execute it as if it's a program. When you type in a command and other whitespace-separated things — the first part is the program and the rest is just inputs/arguments passed to that program.
Now, you don't actually need to execute a text file as a script. You need to open it with a code editor, for example, you can use nvim ~/.config/kitty/kitty.conf
to open it for editing in NeoVim, just like you did with the incorrect filename .kitty.config
.
In this example, nvim
is a program and ~/.config/kitty/kitty.conf
is its first command line argument. The shell locates the nvim
program's full path by checking the $PATH
environment variable (it'll probably resolve it to /usr/bin/nvim
), and then, it executes that file /usr/bin/nvim
. From that moment on, NeoVim sees that '~/.config/kitty/kitty.conf'
is passed and opens it by itself.
/usr/bin/nvim
is a binary (compiled executable) that also has an executable bit in the file system metadata. If it didn't have that bit set, it'd fail with a permission error, too. But that's a separate topic to explore.
FWIW, after saving the config file, you can restart Kitty or run it with font debug from a separate tab (Ctrl+Shift+T
) to verify the effect.
Also, it'd be interesting to see ls -alh — this reveals the file privileges/owners info, not just names.
drwxr-xr-x. 1 olenayefymenko olenayefymenko 46 Jan 27 17:14 . drwxr-xr-x. 1 olenayefymenko olenayefymenko 728 Jan 26 18:34 .. -rw-r--r--. 1 olenayefymenko olenayefymenko 77K Jan 27 15:59 kitty.conf -rw-r--r--. 1 olenayefymenko olenayefymenko 163 Jan 27 17:14 .kitty.config
Try bundling this output with the actual command as shown above. Also, it's useful to include the output of pwd
.
Anyway... This confirms my guesses and observations I wrote above — you've created the correct file kitty.conf
on Jan 27 at 15:59, but then, for some reason, you've added another file .kitty.config
at 17:14 — the one you don't actually need. So you should only edit the former to see the effect of the changes you're trying to make, and remove the latter, so it doesn't just lay on disk confusingly.
As a bonus exploration pointer, google chown
and chmod
to learn about the file system privileges, separately from the task here — you can just add this to your backlog for future learning.
P.S. I am sorry, that I can't resolve this task so long(
That's okay, no need to apologize. Everyone's pace is different.
Thank you very much for the detailed description of the command execution algorithm in the terminal.
And for your patience.
I changed the different font options several times. Reopened Kitty and everything works as it should :)
After kitty --debug-font-fallback
also correct information
Great, I do suppose we can close this now, provided that you'll keep practicing this. Note that you can always enable more plugins in AstroNvim and update the user config as you go. Feel free to post links or notes in this issue if you need to keep track of things you're trying out.
@webknjaz
Great, I do suppose we can close this now, provided that you'll keep practicing this. Note that you can always enable more plugins in AstroNvim and update the user config as you go. Feel free to post links or notes in this issue if you need to keep track of things you're trying out.
I practiced writing code a bit in AstroNvim. pylint
and flake8
were installed due to :MasonInstall <package>
. They are working properly.
And I am trying to run code in AstroNvim. So far it has been possible to do this in tab Bufs (in Toggle Explorer mode), using the following command: :! python <file.py>.
Maybe there are plugins/packages that you would recommend installing for launch code?
I think there's a way to get a shell or a Python REPL through those
https://astronvim.github.io/#-requirements says that <Space>tp
runs a Python REPL. There's also a way to install stuff visually, through that <Space>
menu — the one appearing when you hit spacebar once.
Thank you! I will try
vimtutor