You can use resize event on datatable. You will get the parameter columnWidths in event.
When width is changed, you can store the new widths in localStorage. You should stringify for storing because storage can store only strings. While loading again you can parse the array of widths and set.
Below is the sample:
There is an attribute density for this component Record Edit Form. Its default value is auto whose layout depends on choice of user compact or comfy. This is applicable only in lightning experience.
But in standalone lightning app, it depends on width of viewport. Find it in documentation
If a record form component doesn't detect the Salesforce density
The force:editRecord does not allow you to pre-define any value other recordid of the record to be update. As a workaround:-
You can use quick action of type update a record by pre-define a value
for the field you are looking for. It will give you the picklist value
selected by default when you click on the button. Based on the user
interaction with ...